原理:在本地生成公钥和私钥,把公钥放到服务器上。
1.修改服务器默认端口
由于安全考虑,我先修改默认的端口号,如不需要可直接跳到第二步。
先展示完整的登录服务器命令,服务器默认端口是22,本机展示服务器地址为106.55.40.166
ssh -p 22 root@106.55.40.166
登录服务器成功后输入
vi /etc/ssh/sshd_config
弹出如下界面
取消图示注释,修改自己想要的端口号,此处我修改成10022
注意上面的提示
先记下这个命令,待会要使用
按下 Esc wq保存返回
输入刚刚记下的命令,加上自己配置的端口号
semanage port -a -t ssh_port_t -p tcp 10022
如果你也遇到这个问题,则需要先下载该命令的支持库
这里展示一下一般遇到 -bash 未找到命令的解决方法,可以先执行反查命令,看该命令属于哪个支持库
输入:
yum whatprovides semanage
可以看到在 policycoreutils-python 下,版本号不需要理会,然后执行安装:
yum install -y policycoreutils-python
安装成功后再执行刚刚的命令
semanage port -a -t ssh_port_t -p tcp 10022
查看是否已经配置成功:
semanage port -l | grep ssh
当然如果端口号输入错了,可以使用以下命令删除
semanage port -d -t ssh_port_t -p tcp 10022
添加并确认无误后,需要重启一下服务
service sshd restart
接下来在本机验证一下
ssh -p 10022 root@106.55.40.166
输入密码后登录成功
2.本地生成公私钥
先查看本地是否已经生成了公私钥
cd ~/.ssh
我已经生成了,如果没有则手动生成
ssh-keygen
生成成功后查看该公钥具体内容
vi id_rsa.pub
先复制全部公钥全部内容,记下来
回到已经登录的服务器
打开:
cd ~/.ssh
接着打开authorized_keys文件,输入刚刚记下的公钥内容
保存退出
回到本机编辑config内容,如果没有该文件也自己手动生成一下
打开添加如下内容
Host *
ServerAliveInterval 60
Host ali
Port 10022
HostName 120.24.83.94
User root
IdentityFile ~/.ssh/id_rsa
IdentitiesOnly yes
具体说明:
保存退出
验证是否成功
完成!