【转】解决SSH设置免密登录,却总是要求Enter passphrase for key ‘/root/.ssh/id_rsa‘:

SSH怎么生成公钥私钥免密登录什么的就不细说了,今天记录的是怎么解决设置完之后,每次还提示”Enter passphrase for key ‘/root/.ssh/id_rsa’:“ 或者其他用户名的这个坑。
ssh localhost, 是不是要你输入id_rsa的密码?
那么一步步检查,到~/.ssh目录下,检查文件和文件权限是否都正确:
.ssh 700
id_rsa 600
id_rsa.pub 644
authorized_keys 600 已经有你的public key
接下来要做的是:

axing@LD8:~/.ssh$ ssh-add id_rsa
Could not open a connection to your authentication agent.

这说明agent设置有问题,我们接着看

axing@Bastion_LD8:~/.ssh$  ssh-agent
SSH_AUTH_SOCK=/tmp/ssh-w0wtXVdGAZet/agent.21338; export SSH_AUTH_SOCK;
SSH_AGENT_PID=21339; export SSH_AGENT_PID;
echo Agent pid 21339;

接着执行以下命令

axing@LD8:~/.ssh$ eval $(ssh-agent)
Agent pid 21341
#再添加私钥到agent
axing@LD8:~/.ssh$ ssh-add id_rsa
Enter passphrase for id_rsa:
Identity added: id_rsa (id_rsa)
#测试一下:
axing@LD8:~/.ssh$ ssh localhost
Welcome to Ubuntu 18.04.1 LTS (GNU/Linux 4.15.0-43-generic x86_64)
...

以上配置完成后仅在本次登陆有效。当tty退出或服务器重启后还需要再来一遍。为了永久生效,需要如下配置。两种办法,第二种验证在SuSE上无效,仅作为记录:

第一种方法:借助第三方工具keychain

下载地址
https://github.com/funtoo/keychain
下载后解压缩,将keychain拷贝到bin目录

cp keychain /usr/bin/

修改用户配置文件

#vim ~/.bash_profile

keychain ~/.ssh/id_rsa
. ~/.keychain/$HOSTNAME-sh

source ~/.bash_profile
尝试登陆
【转】解决SSH设置免密登录,却总是要求Enter passphrase for key ‘/root/.ssh/id_rsa‘:_第1张图片

第二种方法:

创建文件 ~/.ssh/config


Host docker-01  #docker-01 是主机名
  UseKeychain yes
  AddKeysToAgent yes
  IdentityFile ~/.ssh/id_rsa

如果仍然不生效,执行如下命令试试:
ssh-add -K ~/.ssh/id_rsa (参数K也可能是小写k,根据系统不同)

你可能感兴趣的:(Linux)