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:\Users\Administrator\Desktop
如果要下载或上传文件夹可以加-r参数, 例如下载/home目录到桌面:
scp -r root@47.97.112.123:/home C:\Users\Administrator\Desktop
3.把服务器上公私的内容添加到authorized_keys文件里(只要将每一台客户端的公钥都添加到服务器端authorized_keys文件中,就可以实现多台客户端同时免密登录服务器了):
cd ~/.ssh
cat id_rsa.pub >> authorized_keys
3.服务器重启sshd:
systemctl restart sshd
4.在客户端的.ssh目录下(我的是在C:\Users\Administrator\.ssh目录)创建或编辑config文件, 文件内容:
Host zp
HostName 47.97.112.123
User root
port 22
IdentityFile ~/.ssh/id_rsa
(把上面的信息改成自己的信息)
5.在客户端的命令行输入ssh zp(第四步的Host对应的内容), 就可以登录了.