客户端使用ssh连接服务器
使用命令
ssh user@hostname
这时提示输入密码,每次连接服务器都要输入密码会很麻烦,现在我们来配置免密连接吧!
1、客户端生成SSH密钥
使用命令
ssh-keygen -t rsa
生成密钥对 id_rsa(私钥) 和 id_rsa.pub(公钥),默认存储在 ~/.ssh 目录下。
生成的时候要求输入密码,应回车直接跳过,否则登录的时候又要输入密码,违背了免密的初衷。
2、服务器端创建 .ssh 目录
登录服务器,到用户目录下创建 .ssh 文件夹
mkdir ~/.ssh
如果是root用户,在 /root 目录下。
如果是negro用户,在 /home/negro 目录下。
3、复制公钥
将客户端中的 id_rsa.pub 复制到服务器
scp ~/.ssh/id_rsa.pub negro@hostname:/home/negro/.ssh/id_rsa.pub
在服务器中,将 id_rsa.pub 中的内容粘贴到 .ssh/authorized_keys 文件中
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
粘贴成功后,就可以删除 id_rsa.pub
rm id_rsa.pub
还有非常重要的一步,设置 authorized_keys 文件的权限为 600,设置 .ssh 文件夹的权限为 700
chmod 600 ~/.ssh/authorized_keys
chmod 700 ~/.ssh/
4、连接服务器
设置成功,用客户端连接一下试试吧
ssh user@hostname
还需要输入密码?
1、请检查服务器 sshd_config 文件配置
sudo vi /etc/ssh/sshd_config
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
看以上三个配置是否被注释,去掉“#”号后,保存,重启服务
sudo service sshd restart