SSH跨机免密登录

一、scp 一个文件从其他服务器到本机,怎么跳过ssh登录验证呢?

要在使用SCP时跳过密码登录,你可以设置SSH密钥认证。首先,你需要在本地机器上生成SSH密钥对(公钥和私钥),然后将公钥添加到远程服务器的授权密钥文件中。

1.在本地机器上生成SSH密钥对:

ssh-keygen -t rsa

2.将公钥复制到远程服务器:

ssh-copy-id username@remote_ip_address

3.输入远程服务器的密码,将本地机器的公钥添加到远程服务器的授权密钥文件中。

现在,当你运行SCP命令时,将不再需要输入密码,因为SSH将使用密钥对进行身份验证。这样就实现了在SCP中跳过密码登录的目的。

二、那我为什么执行了这个命令,ssh登录还是需要密码呢?

如果您已经使用ssh-copy-id命令成功将公钥添加到另一台远程主机的authorized_keys文件中,但仍然无法实现无密码登录,可能有以下几个原因:

1.权限问题:确保您的.ssh目录和authorized_keys文件的权限设置正确。您可以使用以下命令来设置正确的权限:

chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys

2.SELinux问题:如果您的系统中启用了SELinux,可能会阻止SSH使用新的公钥。您可以临时禁用SELinux来测试一下:

  • 先查看系统中是否启用了SELinux
sestatus
  • 然后临时禁用SELinux
sudo setenforce 0
  • 如果要永久禁用,则需要修改/etc/selinux/config文件
vi /etc/selinux/config
  • 将其修改为SELINUX=disabled,表示禁用SELinux。 最后重启系统以使更改生效:
reboot

3.SSH配置问题:检查远程主机上的SSH服务器配置文件(通常是/etc/ssh/sshd_config),确保以下配置项设置正确:

PubkeyAuthentication yes
PasswordAuthentication no

一旦您检查并解决了这些潜在问题,您应该可以实现无密码登录到远程主机。

三、系统中启用了SELinux,会阻止SSH使用新的公钥,怎么修改SELinux策略以允许SSH使用新的公钥

要修改SELinux策略以允许SSH使用新的公钥,您可以按照以下步骤进行操作:

1.首先,确定您的SSH密钥文件的安全上下文。您可以使用以下命令查看:

ls -Z ~/.ssh

这将显示.ssh目录及其内容的安全上下文标签。

2.然后,您可以使用semanage命令来添加一个新的SELinux策略,以允许SSH服务器使用指定的密钥文件。例如,如果您的SSH密钥文件的上下文标签为ssh_home_t,您可以使用以下命令添加策略:

semanage fcontext -a -t ssh_home_t "~/.ssh(/.*)?"

这将告诉SELinux允许SSH服务器访问~/.ssh目录及其内容。

3.最后,您需要应用新的SELinux策略,以确保更改生效:

restorecon -R -v ~/.ssh

这将重新应用新的安全上下文标签,使得SSH服务器可以使用新的公钥文件。

请注意,对SELinux策略进行更改需要谨慎,以确保系统的安全性和稳定性。建议在进行更改之前备份重要数据,并确保您了解所做更改的影响。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值