跳到主要内容

无密码登录Linux

在本机上生成RSA 4096长度,没有密码的密钥对

ssh-keygen -t rsa -b 4096 -f ./xxx.key -N ""
  • -t rsa指定密钥类型为 RSA。
  • -b 4096 设置密钥长度为 4096 位。
  • -f ./xxx.key 指定生成的密钥文件名,私钥为 xxx.key,位于当前目录下。
  • -N "" 设置新密钥的密码短语为空,这避免了创建密钥时进入交互模式要求输入密码短语。

在服务器上添加公钥

你可以手动添加到~/.ssh/authorized_keys,但是ssh-copy-id会更方便。

ssh-copy-id -i ./public_key.pub user@hostname

查看秘钥是否成功添加

cat ~/.ssh/authorized_keys

取消密码登录

/etc/ssh/sshd_config里修改

PasswordAuthentication no

重启sshd服务

systemctl restart sshd

验证

在退出当前session之前先检查一下是否可以用公钥登录。 可以在~/.ssh/config下添加服务器信息。

Host server
Hostname 12.34.56.78
User user
IdentityFile ~/Documents/keys/private.key

用这样的配置可以这样登录

ssh server