小忆

有梦想,有精彩

SSH免密码登录Linux

2017-05-21

在自己电脑上通过SSH免密码登录到Linux服务器是很有必要的,特别是在服务器配置了PM2之后,可以通过Git仓库更新Node.js项目,如果不配置SSH免密码登录,通过PM2更新Node.js项目至少都要输入7-8次密码,这样很繁琐,而且影响更新进度,大量的时间浪费在输密码这件事上,很没有必要。

本文所使用环境:

1
2
服务器Linux版本:CentOS 6.9 x64
本机操作系统:MacOS Sierra 10.12.3

修改服务器SSH配置文件:

1
2
3
4
5
vim /etc/ssh/sshd_config   
  找到以下内容,并去掉注释符“#”
  RSAAuthentication yes
  PubkeyAuthentication yes
  AuthorizedKeysFile .ssh/authorized_keys

其实现在很多服务器不需要修改这个,在我使用的众多服务器中,没有一台需要修改这个配置文件,当然为了保险起见,你可以修改一下,修改之后别忘记重启SSH服务。

本机生成SSH公钥和私钥:

注意:如果你在使用Git,生成过SSH公钥或私钥,可跳过这一步!

1
ssh-keygen -t rsa -C “xxx@xx.com”

执行以上命令后,会提示你填写一些信息,可以一路回车(建议)。执行完毕后,查看~/.ssh/下是否有id_rsa和id_rsa.pub文件。

将本机公钥上传到服务器

1
2
scp ~/.ssh/id_rsa.pub root@目标主机ip或主机名:/home/id_rsa.pub 
# 使用windows的朋友可以使用SFTP工具上传

登录到服务器,把公钥导入到认证文件

1
cat /home/id_rsa.pub >> ~/.ssh/authorized_keys

如果你的账户非root,请在服务器上导入公钥以后,更改相关文件的权限.

1
2
chmod 700 ~/.ssh   
chmod 600 ~/.ssh/authorized_keys