系统:Windows10 教育版、CentOS7.9
工具:FinalShell
1.Windows生成公钥和私钥
ssh-keygen -t rsa -C "邮箱"
按提示生成两个文件,后缀名为.pub的是公钥,另一个为私钥,最好生成到默认位置,如 C:\Users\Administrator\.ssh , 否则执行ssh-add添加私钥的时候可能提示:
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: UNPROTECTED PRIVATE KEY FILE! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Permissions for '私钥文件' are too open.
It is required that your private key files are NOT accessible by others.
This private key will be ignored.
2.win10安装SSH
依次点击,Windows--->设置--->更新和安全--->开发者选项--->勾选"开发人员模式"
等待系统自动下载数据包和自动安装。
3.Windows添加私钥
打开 Windows Powershell,检查ssh-agent服务是否启动成功,若未启动,则添加私钥时会提示“Error connecting to agent: No such file or directory”
get-service ssh*
执行以下两条命令启动服务
Set-Service -Name ssh-agent -StartupType Manual
Start-Service ssh-agent
添加私钥
ssh-add C:/Users/Administrator/.ssh/私钥文件名
私钥添加成功后提示
Identity added: C:/Users/Administrator/.ssh/私钥文件名 (邮箱)
4.CentOS添加用户tom和公钥
centos新建用户
useradd -m tom
passwd tom
在/home下会生成与用户名同名的目录,在该目录下新建目录.ssh
cd /home/tom
mkdir .ssh
查看创建好的目录,修改目录所有者为用户tom,查看修改结果
chown -R tom:tom /home/tom/.ssh
在Windows命令提示符窗口中执行命令,将公钥上传到CentOS里的/home/tom/.ssh目录中
scp C:\Users\Administrator\.ssh\公钥文件 tom@你的服务器IP:.ssh
第一次连接时会出现:
The authenticity of host '192.168.152.133 (192.168.152.133)' can't be established.
ECDSA key fingerprint is SHA256:sa205F21zopUJoPpOfJumtO8PJgFFaNdSJZP/CiUrco.
Are you sure you want to continue connecting (yes/no)?
输入 yes 之后,回车,然后会提示输入密码
CentOS系统,将公钥文件写入文件 authorized_keys 中
cat /home/tom/.ssh/id_rsa.pub >> /home/tom/.ssh/authorized_keys
修改.ssh目录和authorized_keys的访问权限
cd /home/tom
chmod 700 .ssh
cd .ssh/
chmod 600 authorized_keys
chown tom:tom /home/tom/.ssh/authorized_keys
Windows下测试
ssh tom@服务器IP
5.私钥过期
一段时间后,仍需输入密码后才可连接系统,说明私钥可能已过期。
再次生成公钥和私钥,Windows添加新私钥,上传新公钥到Linux并重新写入。