linux用户空密码登录,Mac、Linux 上实现SSH免密码登陆到Linux服务器

正常登陆服务器是需要密码的,这对于需要频繁访问服务器的操作是不友好的。于是我们可以进行相关配置,通过 SSH 公钥实现免密码登陆。

步骤:

> 机器A:本地或远程的 Mac、Linux 机器

> 机器B:需要登录的Linux服务器

> 实现:从 机器A 免密码登录到 机器B

1、( 机器A上操作 )生成公钥/私钥对

执行命令,生成公钥/私钥对:

ssh-keygen -t rsa -P

-P表示密码,-P 就表示空密码

回车后,默认在 ~/.ssh/ 目录下生成:id_rsa(私钥) id_rsa.pub(公钥)

2、(机器A上操作)把公钥拷贝到服务器上

scp ~/.ssh/id_rsa.pub sam@192.168.0.100:/home/sam/.ssh/sam.pub

注意:sam@192.168.0.100 需要根据自己服务器用户和ip修改,sam.pub 为自定义的公钥文件名(方便管理)

3、(机器B上操作)把公钥内容添加到authorized_keys中

cat ~/.ssh/sam.pub >> ~/.ssh/authorized_keys

注意:authorized_keys 需要 600 权限

chmod 700 ~/.ssh

chmod 600 ~/.ssh/authorized_keys

完成以上操作,在 机器A 上则可以直接通过:ssh sam@192.168.0.100 登陆到机器B服务器,而不需要输入密码。

常见问题

常见问题:完成了SSH免密码登陆配置,仍然需要输入密码

可能一:权限导致的认证失败

检查 ~/.ssh 和 ~/.ssh/authorized_keys 权限是否正确

chmod 700 ~/.ssh

chmod 600 ~/.ssh/authorized_keys

可能二:SELinux的问题导致的认证失败

查看系统的日志文件( -n 50 最近50条 )

tail /var/log/secure -n 50

发现错误信息:

Jul 18 15:20:06 e1 sshd[32684]: Failed publickey for sam from 192.168.0.80 port 53665 ssh2

进行以下修复:

1、关闭SELinux

setenforce 0

2、修复/home目录的context

restorecon -r -vv /home/

3、打开SELinux

setenforce 1

重新连接SSH,认证成功,正常免密登陆。

可能二出现的原因,有可能是机器安装分区的时候发生了错误,/home目录上的context 异常,修复context即可。

正常登陆服务器是需要密码的,这对于需要频繁访问服务器的操作是不友好的。于是我们可以进行相关配置,通过 SSH 公钥实现免密码登陆。 步骤: > 机器A:本地或远程的 Mac、Linux 机器 > 机器B:需要登录的Linux服务器 > 实现:从 机器A 免密码登录到 机器B 1、( 机器A上操作 )生成公钥/私钥对 执行命令,生成公钥/私钥对: ssh-keygen -t rsa -P -P表示密码,-P 就表示空密码 回车后,默认在 ~/.ssh/ 目录下生成:id_rsa(私钥) id_rsa.pub(公钥) 2、(机器A上操作)把公钥拷贝到服务器上 scp ~/.ssh/id_rsa.pub sam@192.168.0.100:/home/sam/.ssh/sam.pub 注意:sam@192.168.0.100 需要根据自己服务器用户和ip修改,sam.pub 为自定义的公钥文件名(方便管理) 3、(机器B上操作)把公钥内容添加到authorized_keys中 cat ~/.ssh/sam.pub >> ~/.ssh/authorized_keys 注意:authorized_keys 需要 600 权限 chmod 700 ~/.ssh chmod 600 ~/.ssh/authorized_keys 完成以上操作,在 机器A 上则可以直接通过:ssh sam@192.168.0.100 登陆到机器B服务器,而不需要输入密码。 常见问题 常见问题:完成了SSH免密码登陆配置,仍然需要输入密码 可能一:权限导致的认证失败 检查 ~/.ssh 和 ~/.ssh/authorized_keys 权限是否正确 chmod 700 ~/.ssh chmod 600 ~/.ssh/authorized_keys 可能二:SELinux的问题导致的认证失败 查看系统的日志文件( -n 50 最近50条 ) tail /var/log/secure -n 50 发现错误信息: Jul 18 15:20:06 e1 sshd[32684]: Failed publickey for sam from 192.168.0.80 port 53665 ssh2 进行以下修复: 1、关闭SELinux setenforce 0 2、修复/home目录的context restorecon -r -vv /home/ 3、打开SELinux setenforce 1 重新连接SSH,认证成功,正常免密登陆。 可能二出现的原因,有可能是机器安装分区的时候发生了错误,/home目录上的context 异常,修复context即可。
经验分享 程序员 微信小程序 职场和发展