不输密码登录 SSH

第一步:安装好 ssh

apt-get install ssh

第二步:配置 openSSH 为允许 PubkeyAuthentication 认证

vim /etc/ssh/sshd_config
PubkeyAuthentication yes # 去掉注释
AuthorizedKeysFile ~/.ssh/authorized_keys # 去掉注释
AuthorizedKeysFile .ssh/authorized_keys # 去掉注释, CentOS 请用这个
useDNS no # 不改的话 ssh 客户端连接的时候会很慢,这一步可以忽略

第三步:把公钥加入到 authorized_keys 中,以让服务端认识你的公钥

# 复制自己的公钥到粘贴板
cat ~/.ssh/id_rsa.pub| pbcopy
# 复制自己的公钥到粘贴板直接粘贴到服务器上
cat ~/.ssh/id_rsa.pub | ssh root@xxx.xx.xxx.xx "mkdir -p ~/.ssh && cat >>  ~/.ssh/authorized_keys"
brew install ssh-copy-id
ssh-copy-id root@xxx.xx.xxx.xx

第四步:重启 sshd 服务

service ssh restart
service sshd restart #centos

更多情况请参考 http://www.cyberciti.biz/faq/centos-stop-start-restart-sshd-command/

第五步:增强安全性

为了安全起见,如果你的主机只有你一两个人需要登录主机,可以禁用掉其它的 Passord 认证方式。

vim /etc/ssh/sshd_config
PasswordAuthentication no # 去掉注释, yes 改成 no
ChallengeResponseAuthentication no #  去掉注释, yes 改成 no

第六步: Storing Passphrases in the Keychain

本机的这一步可以略过,主要用在需要转发 ssh key 的安全主机上

ssh-add -K

如果觉得我的文章对您有用,请在支付宝公益平台找个项目捐点钱。 @Victor Sep 15, 2014

奉献爱心