通常,在创建新的 Web 服务器时,为了通过 SSH 登录而不必输入密码,我会将主机添加到我的~/.ssh/config
文件中,如下所示:
Host foobar
HostName 111.111.111.111
User myusername
然后我将运行此命令将我的 SSH 密钥复制到服务器。
cat ~/.ssh/id_rsa.pub | ssh foobar "mkdir ~/.ssh; cat >> ~/.ssh/authorized_keys"
有没有办法在我的 .bash_profile/.bashrc 中创建一个别名,允许我输入类似的内容copy_key foobar
,它会将我的密钥复制到服务器?我尝试在我的 .bashrc 文件中使用该长命令创建一个函数,但它只是尝试登录到服务器。
答案1
“别名”是 bash 脚本,名为ssh-copy-id
。查看手册页:man
ssh-copy-id
:
ssh-复制-id是一个使用 ssh 登录远程机器的脚本(大概使用登录密码,因此应该启用密码验证,除非您巧妙地使用了多重身份)它还会更改远程用户主目录的权限,
~/.ssh
并删除组可写性(如果远程已在其配置中设置~/.ssh/authorized_keys
,则会阻止您登录)。sshd
StrictModes