如何在 Google Computer Engine 上创建的两个实例之间通过 ssh 复制 id
how to ssh-copy id between two instances created on Google Computer Engine
实例:1
主机名:hdp-node-1
IP 地址:35.200.132.198
实例:2
主机名:hdp-node-2
ip 地址:35.200.208.150
我可以从我的本地机器登录到这两个实例。但是我想在 google 云平台中的这两个实例之间使用 public 私钥对设置无密码 SSH 我已经在节点 1 上创建了 RSA 密钥但是当我尝试 ssh-copy-id 然后它拒绝授予权限我也检查了文件夹权限。
hdpuser@hdp-node-1:~$ ssh-copy-id -i ~/.ssh/id_rsa.pub hdpuser@35.200.208.150
/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed:
"/home/hdpuser/.ssh/id_rsa.pub"
The authenticity of host '35.200.208.150 (35.200.208.150)' can't be
established.
ECDSA key fingerprint is SHA256:ATVf5KnwDP1DX0+m/LnByw6aMQg8wsdFW9i2OPooDEE.
Are you sure you want to continue connecting (yes/no)? yes
/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to
filter out any that are already installed
/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are
prompted now it is to install the new keys
hdpuser@35.200.208.150: Permission denied (publickey).
调试日志
ssh -v hdpuser@35.200.208.150
OpenSSH_7.6p1 Ubuntu-4, OpenSSL 1.0.2n 7 Dec 2017
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 19: Applying options for *
debug1: Connecting to 35.200.208.150 [35.200.208.150] port 22.
debug1: Connection established.
debug1: identity file /home/hdpuser/.ssh/id_rsa type 0
debug1: key_load_public: No such file or directory
debug1: identity file /home/hdpuser/.ssh/id_rsa-cert type -1
debug1: key_load_public: No such file or directory
debug1: identity file /home/hdpuser/.ssh/id_dsa type -1
debug1: key_load_public: No such file or directory
debug1: identity file /home/hdpuser/.ssh/id_dsa-cert type -1
debug1: key_load_public: No such file or directory
debug1: identity file /home/hdpuser/.ssh/id_ecdsa type -1
debug1: key_load_public: No such file or directory
debug1: identity file /home/hdpuser/.ssh/id_ecdsa-cert type -1
debug1: key_load_public: No such file or directory
debug1: identity file /home/hdpuser/.ssh/id_ed25519 type -1
debug1: key_load_public: No such file or directory
debug1: identity file /home/hdpuser/.ssh/id_ed25519-cert type -1
debug1: Local version string SSH-2.0-OpenSSH_7.6p1 Ubuntu-4
debug1: Remote protocol version 2.0, remote software version OpenSSH_7.6p1 Ubuntu-4
debug1: match: OpenSSH_7.6p1 Ubuntu-4 pat OpenSSH* compat 0x04000000
debug1: Authenticating to 35.200.208.150:22 as 'hdpuser'
debug1: SSH2_MSG_KEXINIT sent
debug1: SSH2_MSG_KEXINIT received
debug1: kex: algorithm: curve25519-sha256
debug1: kex: host key algorithm: ecdsa-sha2-nistp256
debug1: kex: server->client cipher: chacha20-poly1305@openssh.com MAC: <implicit> compression: none
debug1: kex: client->server cipher: chacha20-poly1305@openssh.com MAC: <implicit> compression: none
debug1: expecting SSH2_MSG_KEX_ECDH_REPLY
debug1: Server host key: ecdsa-sha2-nistp256 SHA256:ATVf5KnwDP1DX0+m/LnByw6aMQg8wsdFW9i2OPooDEE
debug1: Host '35.200.208.150' is known and matches the ECDSA host key.
debug1: Found key in /home/hdpuser/.ssh/known_hosts:4
debug1: rekey after 134217728 blocks
debug1: SSH2_MSG_NEWKEYS sent
debug1: expecting SSH2_MSG_NEWKEYS
debug1: SSH2_MSG_NEWKEYS received
debug1: rekey after 134217728 blocks
debug1: SSH2_MSG_EXT_INFO received
debug1: kex_input_ext_info: server-sig-algs=<ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521>
debug1: SSH2_MSG_SERVICE_ACCEPT received
debug1: Authentications that can continue: publickey
debug1: Next authentication method: publickey
debug1: Offering public key: RSA SHA256:VOpdHWpG5bRrArm6CWp86qKoPU33TmipL3l6KLXMrzo /home/hdpuser/.ssh/id_rsa
debug1: Authentications that can continue: publickey
debug1: Trying private key: /home/hdpuser/.ssh/id_dsa
debug1: Trying private key: /home/hdpuser/.ssh/id_ecdsa
debug1: Trying private key: /home/hdpuser/.ssh/id_ed25519
debug1: No more authentication methods to try.
hdpuser@35.200.208.150: Permission denied (publickey).
我参考过这个post我不明白我应该怎么做
how to ssh between two instances created on Google Computer Engine?
我需要在这里设置 HDP 提前致谢
如果安装由平台管理的 project wide keys , or instance only public 密钥会更容易。安装在每个实例上的 GCE 代理将为您从元数据中复制实例。即使您动态创建新节点,此解决方案也能正常工作。
实例:1 主机名:hdp-node-1 IP 地址:35.200.132.198
实例:2 主机名:hdp-node-2 ip 地址:35.200.208.150
我可以从我的本地机器登录到这两个实例。但是我想在 google 云平台中的这两个实例之间使用 public 私钥对设置无密码 SSH 我已经在节点 1 上创建了 RSA 密钥但是当我尝试 ssh-copy-id 然后它拒绝授予权限我也检查了文件夹权限。
hdpuser@hdp-node-1:~$ ssh-copy-id -i ~/.ssh/id_rsa.pub hdpuser@35.200.208.150
/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed:
"/home/hdpuser/.ssh/id_rsa.pub"
The authenticity of host '35.200.208.150 (35.200.208.150)' can't be
established.
ECDSA key fingerprint is SHA256:ATVf5KnwDP1DX0+m/LnByw6aMQg8wsdFW9i2OPooDEE.
Are you sure you want to continue connecting (yes/no)? yes
/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to
filter out any that are already installed
/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are
prompted now it is to install the new keys
hdpuser@35.200.208.150: Permission denied (publickey).
调试日志
ssh -v hdpuser@35.200.208.150
OpenSSH_7.6p1 Ubuntu-4, OpenSSL 1.0.2n 7 Dec 2017
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 19: Applying options for *
debug1: Connecting to 35.200.208.150 [35.200.208.150] port 22.
debug1: Connection established.
debug1: identity file /home/hdpuser/.ssh/id_rsa type 0
debug1: key_load_public: No such file or directory
debug1: identity file /home/hdpuser/.ssh/id_rsa-cert type -1
debug1: key_load_public: No such file or directory
debug1: identity file /home/hdpuser/.ssh/id_dsa type -1
debug1: key_load_public: No such file or directory
debug1: identity file /home/hdpuser/.ssh/id_dsa-cert type -1
debug1: key_load_public: No such file or directory
debug1: identity file /home/hdpuser/.ssh/id_ecdsa type -1
debug1: key_load_public: No such file or directory
debug1: identity file /home/hdpuser/.ssh/id_ecdsa-cert type -1
debug1: key_load_public: No such file or directory
debug1: identity file /home/hdpuser/.ssh/id_ed25519 type -1
debug1: key_load_public: No such file or directory
debug1: identity file /home/hdpuser/.ssh/id_ed25519-cert type -1
debug1: Local version string SSH-2.0-OpenSSH_7.6p1 Ubuntu-4
debug1: Remote protocol version 2.0, remote software version OpenSSH_7.6p1 Ubuntu-4
debug1: match: OpenSSH_7.6p1 Ubuntu-4 pat OpenSSH* compat 0x04000000
debug1: Authenticating to 35.200.208.150:22 as 'hdpuser'
debug1: SSH2_MSG_KEXINIT sent
debug1: SSH2_MSG_KEXINIT received
debug1: kex: algorithm: curve25519-sha256
debug1: kex: host key algorithm: ecdsa-sha2-nistp256
debug1: kex: server->client cipher: chacha20-poly1305@openssh.com MAC: <implicit> compression: none
debug1: kex: client->server cipher: chacha20-poly1305@openssh.com MAC: <implicit> compression: none
debug1: expecting SSH2_MSG_KEX_ECDH_REPLY
debug1: Server host key: ecdsa-sha2-nistp256 SHA256:ATVf5KnwDP1DX0+m/LnByw6aMQg8wsdFW9i2OPooDEE
debug1: Host '35.200.208.150' is known and matches the ECDSA host key.
debug1: Found key in /home/hdpuser/.ssh/known_hosts:4
debug1: rekey after 134217728 blocks
debug1: SSH2_MSG_NEWKEYS sent
debug1: expecting SSH2_MSG_NEWKEYS
debug1: SSH2_MSG_NEWKEYS received
debug1: rekey after 134217728 blocks
debug1: SSH2_MSG_EXT_INFO received
debug1: kex_input_ext_info: server-sig-algs=<ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521>
debug1: SSH2_MSG_SERVICE_ACCEPT received
debug1: Authentications that can continue: publickey
debug1: Next authentication method: publickey
debug1: Offering public key: RSA SHA256:VOpdHWpG5bRrArm6CWp86qKoPU33TmipL3l6KLXMrzo /home/hdpuser/.ssh/id_rsa
debug1: Authentications that can continue: publickey
debug1: Trying private key: /home/hdpuser/.ssh/id_dsa
debug1: Trying private key: /home/hdpuser/.ssh/id_ecdsa
debug1: Trying private key: /home/hdpuser/.ssh/id_ed25519
debug1: No more authentication methods to try.
hdpuser@35.200.208.150: Permission denied (publickey).
我参考过这个post我不明白我应该怎么做
how to ssh between two instances created on Google Computer Engine?
我需要在这里设置 HDP 提前致谢
如果安装由平台管理的 project wide keys , or instance only public 密钥会更容易。安装在每个实例上的 GCE 代理将为您从元数据中复制实例。即使您动态创建新节点,此解决方案也能正常工作。