在远程Linux/UNIX服务器中安装/追加SSH密钥Authorized_keys

时间:2020-01-09 10:41:01  来源:igfitidea点击:

如何在不使用scp和/或复制和粘贴方法的情况下,从Linux工作站或Apple OS X便携式计算机自动将SSH公钥~/.ssh/id_rsa.pub安装到远程Linux和UNIX服务器上?
您需要使用ssh-copy-id脚本,该脚本使用ssh通过登录密码登录到远程计算机。
语法如下:

ssh-copy-id [email protected]

ssh-copy-id -i ~/.ssh/id_rsa.pub [email protected]

或者

ssh-copy-id -i ~/.ssh/id_dsa.pub [email protected]

或使用远程主机上的特定端口,例如tcp端口4242:

ssh-copy-id -i /path/key/file.pub "[email protected] -p 4242"

在OS X Unix系统上安装ssh-copy-id

执行以下命令:

brew install ssh-copy-id

步骤1:创建密钥

输入以下ssh-keygen命令以生成,管理和转换工作站/笔记本电脑的身份验证密钥:

ssh-keygen

确保使用密码保护密钥。

步骤2:安装公钥

在名为www-03.theitroad.com的远程服务器上安装密钥,执行:

ssh-copy-id -i ~/.ssh/id_rsa.pub [email protected]

注意:如果在系统上找不到ssh-copy-id命令,请尝试以下命令在远程主机上追加/安装公钥:

ssh [email protected]" 
umask 077; mkdir .ssh " 
cat $HOME/.ssh/id_rsa.pub | ssh [email protected] "cat >> .ssh/authorized_keys"

步骤3:使用钥匙串减少密码登录

OpenSSH无需提供密码即可向远程系统提供RSA和DSA身份验证。

keychain是一种特殊的bash脚本,旨在使基于密钥的身份验证变得异常便捷和灵活(请参阅如何在unix上安装keychain脚本)。
将以下行添加到~/.bash_profile或shell登录文件中:

/usr/bin/keychain $HOME/.ssh/id_rsa
source $HOME/.keychain/$HOSTNAME-sh

保存并关闭文件。