一句话概括:将A机公钥scp至B机authorized_keys,即可实现A免密登录B。
A机:192.168.1.11
B机:192.168.1.10
A:192.168.1.11
mkdir ~/.ssh
ssh-keygen -t rsa
passphrase时直接输入回车表示无证书密码。
上述命令将生成私钥证书id_rsa和公钥证书id_rsa.pub,存放在用户家目录的.ssh子目录中。
将公钥证书id_rsa.pub复制到机器B的root家目录的.ssh子目录中,同时将文件名更换为authorized_keys,此时需要输入B机的root用户密码(还未建立信任关系)。建立了客户端到服务器端的信任关系后,客户端就可以不用再输入密码,就可以从服务器端拷贝数据了。
scp id_rsa.pub 192.168.1.10:/root/.ssh| mv id_rsa.pub authorized_keys
chmod 700 .ssh
chmod 600 authorized_keys
测试:从A机ssh-B机是否免验证。
远程执行命令:ssh root@10.0.0.188
如果还是无法登陆,请尝试更新缓存。
1、把专用密钥添加到 ssh-agent 的高速缓存中:
ssh-add ~/.ssh/id_dsa
2、从ssh-agent中删除密钥:
ssh-add -d ~/.ssh/id_xxx.pub
3、查看ssh-agent中的密钥:
ssh-add -l
B:192.168.1.10 同A的操作。
只允许以公钥/秘钥方式登录,禁止账号密码登录:
vim /etc/ssh/sshd_config
Protocol 2 只允许ssh2方式连接
ServerKeyBits 1024 将serverkey强度改为1024
PasswordAuthentication no 不允许密码方式登录
PubkeyAuthentication yes ##使用key登录
AuthorizedKeysFile .ssh/authorized_keys 公钥文件