配置Linux免密码使用SSH登陆远程服务器的过程,记录一下。
两边的服务器,只需要用户名一样即可,不需要密码一样,也不需要uid/gid一样,不需要两个用户处在相同的用户组里。
在本地服务器上生成公钥文件
$ ssh-keygen -t rsa #连续三次回车,即在本地生成了公钥和私钥,不设置密码
将生成的.ssh/id_rsa.pub文件拷贝到远程服务器上。
在远程服务器上导入公钥文件
将本地生成的id_rsa.pub拷贝到你想无密码登录的远程服务器的~/.ssh目录下,然后在远程服务器上作如下设置。
$ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
$ chmod 700 ~/.ssh #必需设置,否则自动登录将不会生效
$ chmod 600 ~/.ssh/authorized_keys #必需设置,否则自动登录将不会生效
然后,再次从本地服务器登陆远程服务器时,你就会发现服务器不会再向你询问密码了。
将id_rsa.pub公钥文件到服务器上并导入的过程可以用ssh-copy-id命令来完成,下面是命令使用列表
$ ssh-copy-id -i ~/.ssh/id_rsa.pub user@server
$ ssh-copy-id -p 22 -i ~/.ssh/id_rsa.pub user@server
===============================================
补充:
配置Linux无须密码使用SSH登陆Windows服务器的过程,也记录一下,很显然,Windows方面需要安装WinSSHD工具,这里我们安装的是Bitvise SSH Server。
两个系统里,只要用户名一样即可,无需UID/GID一致,也不需要group name一样。
1,在Linux系统下生成SSH Key,同样需要将生成的.ssh/id_rsa.pub文件拷贝到Windows系统里。
2,在WinSSHD工具里导入公钥,参考下方图片