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

方式一:密码登入

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

客户端 A 连接服务端 B,客户端 A 中执行命令 ssh root@172.19.0.2 去连接 B。命令中的 root 是服务端 B 的用户名
接着就是输入密码即可

方式二:公钥登入(免密登入)

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

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

方式三:秘钥文件登入

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

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