ssh设置密钥认证登录

1.生成私钥公私
在Linux命令行输入ssh-keygen (Windows电脑可以安装cmder, cmder可以在Windows电脑上运行Linux命令):

如果不修改路径和文件名一直回车就行(不建议修改路径):

然后进入C:/Users/Administrator/.ssh/目录下发现多个两个文件:

(如果你修改了路径就去你修改后的路径下找)


2.把公私上传到服务器上的~/.ssh目录下(id_rsa.pub文件)

Windows可以安装WinSCP工具上传, 或者在cmder下使用scp命令上传, 格式为: scp [参数] 本地文件 远程帐户@远程 IP 地址:远程目录.

scp C:/Users/Administrator/.ssh/id_rsa.pub root@47.97.112.123:~/.ssh

远程IP地址改成自己的远程IP地址, 然后按回车键再输入密码, 上传成功后可以删除客户端下的id_rsa.pub文件了.

如果要下载文件也可以使用scp命令:

scp [参数] 远程用户@远程 IP 地址:远程文件 本地目录

例如下载服务器的/etc/redhat-release文件到桌面:

scp root@47.97.112.123:/etc/redhat-release C:UsersAdministratorDesktop

如果要下载或上传文件夹可以加-r参数, 例如下载/home目录到桌面:

scp -r root@47.97.112.123:/home C:UsersAdministratorDesktop

3.把服务器上公私的内容添加到authorized_keys文件里(只要将每一台客户端的公钥都添加到服务器端authorized_keys文件中,就可以实现多台客户端同时免密登录服务器了):

cd ~/.ssh
cat id_rsa.pub >> authorized_keys


3.服务器重启sshd:

systemctl restart sshd


4.在客户端的.ssh目录下(我的是在C:UsersAdministrator.ssh目录)创建或编辑config文件, 文件内容:
Host zp
HostName 47.97.112.123
User root
port 22
IdentityFile ~/.ssh/id_rsa

(把上面的信息改成自己的信息)

5.在客户端的命令行输入ssh zp(第四步的Host对应的内容), 就可以登录了.

原文地址:https://www.cnblogs.com/zp106/p/12883873.html