Mac ssh免密码登录远程Linux服务器

348 阅读2分钟

原理:在本地生成公钥和私钥,把公钥放到服务器上。

1.修改服务器默认端口

由于安全考虑,我先修改默认的端口号,如不需要可直接跳到第二步。

先展示完整的登录服务器命令,服务器默认端口是22,本机展示服务器地址为106.55.40.166

ssh -p 22 root@106.55.40.166

登录服务器成功后输入

vi /etc/ssh/sshd_config

弹出如下界面 Untitled.png

取消图示注释,修改自己想要的端口号,此处我修改成10022

Unt1itled.png

注意上面的提示

22.png

先记下这个命令,待会要使用

按下 Esc wq保存返回

输入刚刚记下的命令,加上自己配置的端口号

semanage port -a -t ssh_port_t -p tcp 10022

33.png

如果你也遇到这个问题,则需要先下载该命令的支持库

这里展示一下一般遇到 -bash 未找到命令的解决方法,可以先执行反查命令,看该命令属于哪个支持库

输入:

yum whatprovides semanage

44.png

可以看到在 policycoreutils-python 下,版本号不需要理会,然后执行安装:

yum install -y policycoreutils-python 

安装成功后再执行刚刚的命令

semanage port -a -t ssh_port_t -p tcp 10022

查看是否已经配置成功:

semanage  port -l | grep ssh

55.png

当然如果端口号输入错了,可以使用以下命令删除

semanage port -d -t ssh_port_t -p tcp 10022

添加并确认无误后,需要重启一下服务

service sshd restart

66.png

接下来在本机验证一下

ssh -p 10022 root@106.55.40.166

77.png

输入密码后登录成功

2.本地生成公私钥

先查看本地是否已经生成了公私钥

cd ~/.ssh

88.png

我已经生成了,如果没有则手动生成

ssh-keygen

生成成功后查看该公钥具体内容

vi id_rsa.pub

1010.png

先复制全部公钥全部内容,记下来

回到已经登录的服务器

打开:

cd ~/.ssh

11.png

接着打开authorized_keys文件,输入刚刚记下的公钥内容

22.png

保存退出

回到本机编辑config内容,如果没有该文件也自己手动生成一下

打开添加如下内容

Host *
  ServerAliveInterval 60

Host ali
  Port 10022
  HostName 120.24.83.94
  User root
  IdentityFile ~/.ssh/id_rsa
  IdentitiesOnly yes

33.png

具体说明:

44.png

保存退出

验证是否成功

55.png

完成!