如何让gcloud compute config-ssh生成的SSH配置使用指定用户名登录VM实例
嗨,我来帮你搞定这个问题~你遇到的情况其实很常见:gcloud compute config-ssh默认会用你本地机器当前登录的用户名(也就是你的username1)来生成SSH配置,所以直接用ssh server-name-some-stuff时会自动用这个用户名尝试登录,导致公钥验证失败;而手动指定username2@server-name-some-stuff就能成功,说明VM那边只认username2的密钥。
要让gcloud compute config-ssh生成的配置默认使用username2,有两种简单的方法:
方法一:单次命令指定用户名
直接在执行config-ssh的时候加上--ssh-user参数,明确指定登录用户名:gcloud compute config-ssh --ssh-user=username2运行这个命令后,它会更新你的SSH配置文件(通常在
~/.ssh/config),对应VM的条目里会自动加上User username2的配置项。之后你再用ssh server-name-some-stuff登录时,就会自动用username2身份连接,不用手动加前缀了。方法二:全局设置默认SSH用户名
如果你希望以后所有和gcloud相关的SSH操作都默认用username2,可以先设置gcloud的全局配置:gcloud config set compute/ssh_user username2这个设置会永久生效(除非你之后修改),之后再运行
gcloud compute config-ssh,生成的所有VM SSH配置都会默认使用username2作为登录用户名。
另外提醒一下,如果之前已经生成过旧的SSH配置,重新运行上述命令后,gcloud会自动更新配置文件里的对应条目,不用手动删除旧内容~
备注:内容来源于stack exchange,提问作者Nikhil Shenoy

