使用ssh-copy-id建立与远端Linux服务器的信任

在工作中常常会需要使用SSH登录服务器,这个时候会频繁的输入用户名和密码,获得服务器的信任才能操作。

往复的工作中会发现这个输入用户名和密码的操作其实是很繁琐的。今天使用ssh-copy-id来获得服务器的信任。

ssh-copy-id的作用其实就是把本地的公钥写入到远程主机的~/.ssh/authorized_keys文件上,ssh-copy-id命令也会给远程主机的用户主目录(home)和~/.ssh~/.ssh/authorized_keys设置合适的权限。

使用 ssh-keygen 命令生成个人公、秘钥

ssh公钥认证是ssh认证的方式之一。通过公钥认证可实现ssh免密码登陆,git的ssh方式也是通过公钥进行认证的。更多原理请参考文章尾部的参考地址。

生成命令如下:

ssh-keygen -t rsa

在命令行输入完上面的命令后一直按回车得到生成的公私钥:~/.ssh/id_rsa.pub~/.ssh/id_rsa文件。

使用 ssh-copy-id 建立信任

命令参数

ssh-copy-id [-h|-?|-f|-n] [-i [identity_file]] [-p port] [[-o <ssh -o options>] ...] [user@]hostname
  • -b:指定密钥长度

  • -e:读取openssh的私钥或者公钥文件

  • -C:添加注释

  • -f:指定用来保存密钥的文件名

  • -p:指定远程服务器SSH端口

  • -i:读取未加密的ssh-v2兼容的私钥/公钥文件,然后在标准输出设备上显示openssh兼容的私钥/公钥

  • -l:显示公钥文件的指纹数据

  • -N:提供一个新密语

  • -P:提供(旧)密语

  • -q:静默模式

  • -t:指定要创建的密钥类型

  • -p:指定远程服务器SSH端口

参数比较多,相对常用的是-i-p参数。

具体命令

ssh-copy-id -i ~/.ssh/id_rsa.pub -p 2200 user_name@your_server_ip_address

这里需要注意参数的位置不要弄错了。

参考地址