Linux ssh免密登录

主要原理

 

  • 在A上创建一对公私钥 (公钥文件:~/.ssh/id_rsa.pub; 私钥文件:~/.ssh/id_rsa)。
  • 把公钥放到B的(~/.ssh/authorized_keys)文件中, 自己保留好私钥.
  • 在使用ssh登录时,ssh程序会发送私钥去和服务器上的公钥做匹配.如果匹配成功就可以登录了。

步骤

假设 服务器A 要免密登录 服务器B

在服务器A上:

ssh-keygen -t rsa -P ""

1. 直接回车生成密钥对:id_rsa和id_rsa.pub

2. 把id_rsa.pub追加到授权的key里面去(.ssh/authorized_keys)

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


3. 修改authorized_keys的权限为600(-rw-------)

chmod 600 ~/.ssh/authorized_keys


4. 修改ssh配置文件,去掉如图中的三行注释(约第48行)

vim /etc/ssh/sshd_config

这里写图片描述

5. 重启ssh服务,测试链接

service sshd restart


A机器上密钥对已做好,且ssh也配置好.现在把公钥发送给服务器B

scp ~/.ssh/id_rsa.pub root@服务器B的ip:~/ #把id_rsa.pub发送到B的/root目录下


在服务器B上:

1. 登录B, 把发送过来的id_rsa.pub追加到authorized_keys 上(注意chmod 700 .ssh权限)

cat ~/id_rsa.pub >> ~/.ssh/authorized_keys  #追加公钥到授权key中
rm ~/id_rsa.pub  #保险起见,删除公钥

2. 修改authorized_keys的权限为600(-rw-------)

chmod 600 ~/.ssh/authorized_keys


3. 修改ssh配置文件,去掉如图中的三行注释(约第48行)

vim /etc/ssh/sshd_config

这里写图片描述

4. 重启ssh服务,测试链接

service sshd restart

回到A上 , ssh B的ip 应该可以了

### 配置 Linux SSH 免密登录 为了实现 Linux 系统中的 SSH 免密码登录,可以按照以下方法完成配置: #### 1. 创建 SSH 密钥对 在本地机器上切换至需要设置免密登录的用户账户(例如 root 或其他普通用户),并执行 `ssh-keygen` 命令来生成一对新的 SSH 密钥。 ```bash ssh-keygen -t rsa -b 4096 ``` 此命令会提示输入保存位置以及密码短语。如果希望完全无密码访问,则直接按回车键跳过这些选项[^2]。 #### 2. 将公钥复制到目标服务器 使用 `ssh-copy-id` 工具或者手动方式把生成好的公钥文件内容追加进远程主机对应用户的 `.ssh/authorized_keys` 文件里。 通过工具的方法如下所示: ```bash ssh-copy-id -i ~/.ssh/id_rsa.pub 用户名@目标IP地址 ``` 如果没有安装该工具或是想了解更底层的操作过程,则可采用下面的手动步骤代替: - 登录到远端计算机; - 编辑或创建名为 `~/.ssh/authorized_keys` 的文本档并将本地电脑上的公钥粘贴进去;确保权限适当调整为只读模式给所属者即可[^3]。 #### 3. 修改服务端SSH配置(视情况而定) 有时还需要修改 `/etc/ssh/sshd_config` 中的一些参数以支持基于密钥的身份验证功能正常运作,比如确认有这样几项设定存在并且未被注释掉: ```plaintext RSAAuthentication yes PubkeyAuthentication yes AuthorizedKeysFile .ssh/authorized_keys PasswordAuthentication no # 可选关闭口令认证提高安全性 PermitRootLogin prohibit-password # 如果允许root登陆则推荐设为此值而非简单的yes/no ChallengeResponseAuthentication no UsePAM no # 对某些环境可能也需要此项改动 ``` 最后记得重启 sshd 进程使更改生效:`service ssh restart` 或者 `systemctl reload ssh`. 至此应该已经能够成功建立无需输入密码便可连接的目标系统的安全通道了!测试一下吧: ```bash ssh -i /path/to/private/keyfile username@remote_host_ip_address ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值