Linux 系统实现 SSH 连接的 3 种 方式

  1. 密码登入
  2. 公钥登入
  3. 私钥登入
登入前提
  1. 服务端安装好 ssh 服务, openssh-server
  2. 客户端与服务器端均要拥有 ssh-key,可以使用命令 ls ~/.ssh/ 来查看是否拥有 id_rsaid_rsa.pub 文件,如果没有同时拥有这两个文件,那就执行命令ssh-keygen并持续按回车键生成它们
  3. 前提假设 :客户端 A 远程连接服务端 B,A 的 IP 等于10.10.10.104,B 的 IP 等于172.19.0.2
方式一:密码登入

原理:执行远程连接命令并输入账号密码

  1. 客户端 A 连接服务端 B,客户端 A 中执行命令 ssh root@172.19.0.2 去连接 B。命令中的 root 是服务端 B 的用户名
  2. 接着就是输入密码即可
方式二:公钥登入(免密登入)

原理:注入公钥到服务端,表示拥有该公钥的客户端可以免密登入

  1. 将客户端 A 的公钥~/.ssh/id_rsa.pub复制到服务端 B 的授权Key文件~/.ssh/authorized_keys中。可采用手动方式,也可以在客户端 A 执行命令 ssh-copy-id root@172.19.0.2来实现
  2. 在客户端 A 执行命令 ssh 172.19.0.2 即可实现免密登入
方式三:秘钥文件登入

原理:客户端每次登入时携带服务端秘钥来登入

  1. 将服务端 B 的私钥~/.ssh/id_rsa复制到客户端 A 中,假设放在~/.ssh/b_id_rsa,并修改权限为只读。在客户端 A 中执行命令chmod 400 ~/.ssh/b_id_rsa来修改权限
  2. 在客户端 A 执行命令 ssh -i ~/.ssh/b_id_rsa root@172.19.0.2 即可实现登入
提示:
  1. 如果服务端 B 的 ssh 服务所监听的端口不是 22 ,假如是 33,那么在客户端 A 连接时,需要加上 -p 33 来连接。比如:ssh -p 33 root@172.19.0.2
Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐