SSH(Secure Shell)免密码连接服务器

运行环境:客户端macOS ,服务器centOS(192.168.123.229)

原理:client保留私钥,在使用ssh登录server时,ssh会发送私钥去和server上的公钥做匹配,若匹配成功则可以登录。
操作:把client生成的公钥文件内容追加到server的~/.ssh/authorized_keys文件中

由于执行ssh-keygen命令后默认会在~/.ssh目录中生成公钥和私钥文件,这里先切换到~/.ssh目录并查看现有的密钥文件

cd ~/.ssh
ls

客户端macOS生成公钥

ssh-keygen -t rsa -f demo1

-t指定密钥格式为rsa,-f指定文件名为demo1

如果不指定文件名,则文件名默认为id_rsa(私钥文件:id_rsa,公钥文件id_rsa.pub)

执行指令后提示你输入密码passphrase,此处不输入任何字符直接回车

在这里插入图片描述其中demo1.pub为公钥文件,demo1为私钥文件

把公钥文件demo1.pub传到服务器
需要注意的是我这里服务器账号直接用的是root,所以路径是~/.ssh ,其他自建账号路径为/home/你的自建账号/.ssh

scp ~/.ssh/demo1.pub root@192.168.123.229:~/.ssh

输入服务器的root对应的密码
在这里插入图片描述

服务器centOS

cd ~/.ssh
ls

可以看到由客户端macOS传输过来的demo1.pub文件

demo1.pub文件内容复制到~/.ssh/authorized_keys文件里面,并授予权限644

cat demo1.pub >> authorized_keys
chmod 700 ~/.ssh
chmod 644 ~/.ssh/authorized_keys

修改服务器centOS的ssh配置文件

vi /etc/ssh/sshd_config

主要修改项如下

#公钥存储位置
AuthorizedKeysFile      .ssh/authorized_keys
#允许root账户登陆(慎用)
PermitRootLogin yes
#开启公匙认证
PubkeyAuthentication yes

PasswordAuthentication yes
StrictModes no

重启sshd服务

service sshd restart

客户端macOS测试连接是否成功

ssh root@192.168.123.229

没有要求你输入密码则说明免密码连接生效了

如果失败则可以带上-v开启调试模式来排查问题

ssh -v  root@192.168.123.229

在这里插入图片描述

也可以使用-vvv获得更加详尽的信息

ssh -vvv  root@192.168.123.229

在这里插入图片描述原因在于这里只去匹配id_rsa等私钥,没有去匹配demo1这个私钥

需要配置一下SSH
SSH 的配置文件有两个:

cat /etc/ssh/ssh_config      # 系统配置文件
cat ~/.ssh/config            # 用户配置文件

编辑

vi ~/.ssh/config

追加如下内容

Host 192.168.123.229
  IdentityFile ~/.ssh/demo1

设置权限

sudo chmod 600 ~/.ssh/config

再次执行

ssh -vvv  root@192.168.123.229

在这里插入图片描述

可以看到把私钥demo1带上并成功通过验证了

额外
macOS重启ssh

#停止
sudo launchctl unload  /System/Library/LaunchDaemons/ssh.plist
#启动
sudo launchctl load -w /System/Library/LaunchDaemons/ssh.plist
#查看
sudo launchctl list | grep sshd
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值