创建别名以将密钥添加到远程 authorized_keys 文件

创建别名以将密钥添加到远程 authorized_keys 文件

通常,在创建新的 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。查看手册页:manssh-copy-id

ssh-复制-id是一个使用 ssh 登录远程机器的脚本(大概使用登录密码,因此应该启用密码验证,除非您巧妙地使用了多重身份)它还会更改远程用户主目录的权限,~/.ssh并删除组可写性(如果远程已在其配置中设置~/.ssh/authorized_keys,则会阻止您登录)。sshdStrictModes

相关内容