SSH 配置自动登录


SSH 配置自动登录

https://harttle.land/2016/09/14/ssh-auto-login.html

配置过程
客户端需要有一对密钥,公钥发送给服务器保存(在authorized_keys文件中)用来验证身份, 私钥用来解密服务器发来的信息。 熟悉RSA算法的朋友一定知道解密还需要对方公钥,服务器公钥是在初次建立连接时接收的, 被保存在authorized_keys下。在此可以看到 SSH 协议中,服务器和客户端的角色是对称的。

客户端生成密钥
在建立连接前先要有一对公私密钥。可以查看 ~/.ssh 目录,如果没有可使用 ssh-keygen 生成。

查看这里有没有一个名为id_rsa.pub的公钥文件

ls ~/.ssh

如果没有,则生成一对。一路确定即可。

ssh-keygen
id_rsa.pub 是公钥,用来标识当前客户端的身份,是可以随便发送给任何人的, 比如Github是 SSH Key就是这个。 id_rsa是私钥,可理解为解密用的密码,不可发送给任何人。

SSH 安装
首先服务器应当安装有openssh,如果没有请自行安装:

arch

pacman -S openssh

ubuntu

apt-get install openssh

RHEL

yum install openssh
对于有些发行版,sshd不会默认运行。如果你的发行版使用systemd服务管理器, 可以使用sysctl来管理sshd守护进程:

启动SSH守护进程

systemctl start sshd

开机自启

systemctl enable sshd
关于systemd的使用可参考:使用systemd管理Node.js应用

服务器配置
为你要登录的用户(比如harttle)创建/.ssh目录以及/.ssh/authorized_keys文件。 并设置正确的权限(否则SSH会拒绝连接):

先登录harttle用户,重新以harttle登录,或sudo -u harttle切换

确认当前用户为harttle

whoami

创建.ssh目录

mkdir ~/.ssh
chmod 700 ~/.ssh

创建对方公钥文件

touch ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys
添加公钥到服务器
切换回客户端,拷贝客户端公钥到服务器的authorized_keys文件:

在windows终端运行:

cat ~/.ssh/id_rsa.pub | ssh root@23.94.203.233 ‘cat >> .ssh/authorized_keys’

两次运行: ssh root@23.94.203.233 就会自动登陆了。现在服务器拥有你的公钥了,再次登录服务器时服务器不会再询问你的密码了:


文章作者: Jems Join
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 Jems Join !
  目录