ssh-copy-id
是一个用于在Linux和Unix系统中设置SSH密钥对自动登录的命令。这个命令可以将公钥复制到远程服务器,从而简化SSH登录过程,避免每次都需要手动输入密码。以下是使用 ssh-copy-id
的基本步骤:
生成SSH密钥对: 如果你还没有SSH密钥对,首先需要生成一个。在终端中运行以下命令:
shell
ssh-keygen
期间需要按三次enter键
通常,密钥将默认保存在 ~/.ssh/id_rsa
(私钥)和 ~/.ssh/id_rsa.pub
(公钥)。
确保SSH服务正在运行: 在远程服务器上,确保SSH服务正在运行。可以使用下面的命令检查:
shell
systemctl status sshd # 对于Systemd系统
service ssh status # 对于传统的init系统
复制公钥到远程服务器: 使用 ssh-copy-id
命令将本地的公钥添加到远程服务器的 ~/.ssh/authorized_keys
文件中:
shell
ssh-copy-id user@remote_host
输入yes ,按下enter键
其中,user
是远程服务器的用户名,remote_host
是远程服务器的IP地址或域名。
输入密码: 当运行 ssh-copy-id
命令时,系统会提示你输入远程服务器的登录密码。输入后,公钥将被添加到远程服务器。
验证自动登录: 现在,你应该能够使用SSH无密码登录远程服务器:
先按ctrl+d 键退出远程登录
再输入下面的命令进行登录,就不需要输入密码了
shell
ssh user@remote_host
如果一切正常,你将直接进入远程服务器的命令行,无需再次输入密码。
请注意,如果你的远程服务器启用了更严格的安全策略,如防火墙规则或SSH配置,你可能需要额外的步骤来允许SSH密钥登录。在使用 ssh-copy-id
之前,请确保你有权访问远程服务器,并熟悉服务器的安全政策。