如何在没有 root 帐户、sshpass 和 sudo 的情况下启用 root ssh 公钥登录?

如何在没有 root 帐户、sshpass 和 sudo 的情况下启用 root ssh 公钥登录?

我创建了一个 azure vm 服务器,它是 ubuntu 1804,我需要使用它启用 root ssh 公钥登录。 Azure 不希望我在创建服务器时启用 root ssh 公钥登录,因此我需要自己使用另一个带密码的无 root 帐户来登录。

答案1

sshpass -p 'xxxYourPassword' ssh -C -o StrictHostKeyChecking=no -o ConnectTimeout=10 xxxYourServerUsername@xxxYourServerIp 'sudo bash -c '"'"'umask 077 && mkdir -p .ssh && echo '"'"'"'"'"'"'"'"'xxxYourSshPublicKey'"'"'"'"'"'"'"'"'>> /root/.ssh/authorized_keys'"'"''

将 xxxYourPassword 替换为您的密码。将 xxxYourServerIp 替换为您的服务器 IP。将 xxxYourServerUsername 替换为您的服务器用户名。将 xxxYourSshPublicKey 替换为您的 SshPublicKey 内容(应该是这样ssh-rsa xxx root@xxx

我知道这不是安全的方法,但我只想用一行命令并从 golang 自动调用来完成我的工作。如果您有其他自动且安全的方式,请告诉我。

有很多vps公司只能创建没有root帐户和密码,所以我必须让它自动...

谢谢https://stackoverflow.com/questions/1250079/how-to-escape-single-quotes-within-single-quoted-strings告诉我如何一次又一次地在 bash 中转义和转义字符串。

相关内容