SSH免密登录

简洁

服务端角度

ssh-keygen

回车回车回车

cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys;\
chmod 700 ~/.ssh ;\
chmod 600 ~/.ssh/authorized_keys

~/.ssh/id_rsa 发给客户端,客户端放 ~/.ssh/id_rsa
客户端登录

ssh SERVER_IP1

客户端角度

ssh-keygen

回车回车回车

ssh-copy-id SERVER_IP1

填写服务端登录密码上传完成。然后直接使用

ssh SERVER_IP1

-------------------深入分析------------------------

众所周知

ssh-keygen

根据提示,默认生成在

~/.ssh/id_rsa

同时生成

~/.ssh/id_rsa.pub

可以修改位置生成在其他地方,例如当前目录

./aaa

同时生成

./aaa.pub

指定密码(是不是可以用来过等保双因子要求)

不是默认 ~/.ssh/id_rsa 的话,使用时候 需要

-i [文件]

如果以服务器角度

id_rsa.pub 内容放需要的用户home目录下的.ssh/authorized_keys。
例如当前目录下的a.pub文件,用户 SERVER_USER1

cat ./a.pub >> /home/SERVER_USER1/.ssh/authorized_keys

如果是首次,可能需要修改 .ssh 和 authorized_keys 用户及权限(根据 /var/log/messages提示)

chown SERVER_USER1:SERVER_USER1 -R /home/SERVER_USER1/.ssh               ;\
chmod 700 /home/SERVER_USER1/.ssh                  ;\
chmod 600 /home/SERVER_USER1/.ssh/authorized_keys

最后 id_rsa 文件发给客户端使用。
客户端把 id_rsa 放自己 .ssh 目录下就能默认使用,否则,通过 -i id_rsa引用

ssh -i ./a SERVER_USER1@SERVER_IP1

以上,服务器端角度完结

如果以客户端角度

客户端通过ssh-keygen 生成 文件后,把 id_rsa.pub 内容填到 服务端目标用户的 authorized_keys 文件中(可以用工具 ssh-copy-id)

ssh-copy-id -i ./a.pub SERVER_USER1@SERVER_IP1

之后需要输入一次服务端 SERVER_USER1 密码
(实际就是登录一次,写文件authorized_keys,如果是第一次,会自动生成 /home/SERVER_USER1/.ssh/authorized_keys ,并且权限也配置好)
最后可以通过文件登录

ssh -i ./a SERVER_USER1@SERVER_IP1

---------------------后话-------------------

ssh 登陆时候,默认引用文件是 对应 id 用户下的 .ssh/id_rsa
我的例子是,客户端、服务端 用户一致

root 0:0 /bin/false --禁止登录
USER1 0:1000 /bin/bash --有root权限,但是不是 root 组,通过普通adduser创建,后修改passwd文件id
USER2 0:0 /bin/bash --同root 不同名字
USER3 1001:1001 /bin/bash --普通用户

  1. 当我用 USER1、USER2 执行 ssh-keygen ,提示生成id_rsa 是 /root/.ssh/id_rsa, 因为 他们 id = 0
  2. 当我用 USER1、USER2 通过ssh-copy-id 把 .pub 传给服务器,USER1 自己home下的.pub 内容会正常添加在/home/USER2/.ssh/authorized_keys里。不像 ssh-keygen,因为 id = 0 而到 root 下找 .pub
    ssh-copy-id USER2@SERVER_IP2
    客户端 /home/USER1/.ssh/id_rsa.pub >> 服务端 /home/USER2/.ssh/authorized_keys
  3. USER1、USER2 登录服务器的 USER3
    ssh USER3@SERVER_IP3
    默认使用的是客户端 /root/.ssh/id_rsa ,即又是看 id = 0
  4. 各层目录和文件的所有者和权限控制比较严格
    服务端 authorized_keys 文件权限 600, 655 都行
    各层目录所有者要正确。例如 USER1 做服务端的话,要确认 chown -R root:USER1 /home/USER1 ,因为 USER1 = 0:1000
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值