文章目录
ssh提供了安全的身份认证的策略,在免密登录之前,首先需要一对公钥和私钥。
客户端拿着私钥,服务端拿着公钥,属于非对称加密。
私钥客户端自己拿着不在网络上传输,公钥可以网络传输存在服务器上,登录的时候用户拿私钥进行加密,内容发送给服务器,服务器对公钥进行解密,成功解密就告诉客户端建立链接。
1.在Windows上生成公钥和私钥
执行如下命令
ssh-keygen.exe -t rsa
一路enter键确认,最后会在C:\Users\{你的用户名}\.ssh
目录下生成两个文件,id_rsa
和id_rsa.pub
,其中
id_rsa 私钥文件
id_rsa.pub 公钥文件
2.将公钥中的内容复制到linux服务器的authorized_keys文件中
文件详细位置位于~/.ssh/authorized_keys
,如果没有这个文件可以手动创建,并确认authorized_keys
文件权限为600,.ssh
目录权限为700。
3.确认linux服务器开启了允许SSH免密登录
确认linux服务器/etc/ssh/sshd_config配置文件中开启了允许SSH免密登录。
主要就是确认是否有下面这一行,并且没有被注释。
PubkeyAuthentication yes
4.确认免密登录配置成功
在Windows上打开Windows Terminal或者命令提示符,使用ssh连接linux服务器,输入yes回车,即可免密登录成功。
5.直接SSH IP免密登录
到了上面那一步,已经可以通过ssh 账户名@IP来免密登录远程服务器了。
如果想要直接ssh IP就可以直接以指定账户登录,那么需要在C:\Users\[用户名]\.ssh\config
中配置如下内容:
# 这里可以写IP也可以写域名
Host XXX.XXX.XXX.XXX
# 可以是域名也可以是IP
HostName XXX.XXX.XXX.XXX
# 登录时的用户名
User root
PreferredAuthentications publickey
# 本地文件,注意这个地方是放私钥的路径
IdentityFile C:\Users\[用户名]\.ssh\id_rsa
验证: