![使用 ssh 连接到本地主机](https://linux22.com/image/1478472/%E4%BD%BF%E7%94%A8%20ssh%20%E8%BF%9E%E6%8E%A5%E5%88%B0%E6%9C%AC%E5%9C%B0%E4%B8%BB%E6%9C%BA.png)
$ l
total 24K
drwxr-x--- 2 maik users 4.0K Dec 28 11:19 .
drwxr-x--- 38 maik users 4.0K Dec 28 11:22 ..
-rw-r--r-- 1 maik users 392 Dec 28 11:18 authorized_keys
-rw------- 1 maik users 1.8K Dec 28 11:09 id_rsa
-rw-r--r-- 1 maik users 391 Dec 28 11:09 id_rsa.pub
-rw-r--r-- 1 maik users 1.1K Dec 28 10:58 known_hosts
我已经id_rsa
用ssh-keygen
+ 生成了一个关键短语。
我已将内容复制id_rsa.pub
到authorized_keys
我做到了ssh-add
当我尝试连接时,ssh localhost
它会切换到 ssh maik@localhost
,但我无法使用我的密钥登录。
我还需要做点别的吗?
$ ssh -v localhost
OpenSSH_7.1p1, OpenSSL 1.0.2e 3 Dec 2015
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: Connecting to localhost [::1] port 22.
debug1: Connection established.
debug1: identity file /home/maik/.ssh/id_rsa type 1
debug1: key_load_public: No such file or directory
debug1: identity file /home/maik/.ssh/id_rsa-cert type -1
debug1: key_load_public: No such file or directory
debug1: identity file /home/maik/.ssh/id_dsa type -1
debug1: key_load_public: No such file or directory
debug1: identity file /home/maik/.ssh/id_dsa-cert type -1
debug1: key_load_public: No such file or directory
debug1: identity file /home/maik/.ssh/id_ecdsa type -1
debug1: key_load_public: No such file or directory
debug1: identity file /home/maik/.ssh/id_ecdsa-cert type -1
debug1: key_load_public: No such file or directory
debug1: identity file /home/maik/.ssh/id_ed25519 type -1
debug1: key_load_public: No such file or directory
debug1: identity file /home/maik/.ssh/id_ed25519-cert type -1
debug1: Enabling compatibility mode for protocol 2.0
debug1: Local version string SSH-2.0-OpenSSH_7.1
debug1: Remote protocol version 2.0, remote software version OpenSSH_7.1
debug1: match: OpenSSH_7.1 pat OpenSSH* compat 0x04000000
debug1: Authenticating to localhost:22 as 'maik'
debug1: SSH2_MSG_KEXINIT sent
debug1: SSH2_MSG_KEXINIT received
debug1: kex: server->client [email protected] <implicit> none
debug1: kex: client->server [email protected] <implicit> none
debug1: expecting SSH2_MSG_KEX_ECDH_REPLY
debug1: Server host key: ecdsa-sha2-nistp256 SHA256:KfpWyOPnPr5kDDHkaPHGjFVzxYrGW9uVBWJuFYOP3Rk
debug1: Host 'localhost' is known and matches the ECDSA host key.
debug1: Found key in /home/maik/.ssh/known_hosts:5
debug1: SSH2_MSG_NEWKEYS sent
debug1: expecting SSH2_MSG_NEWKEYS
debug1: SSH2_MSG_NEWKEYS received
debug1: Roaming not allowed by server
debug1: SSH2_MSG_SERVICE_REQUEST sent
debug1: SSH2_MSG_SERVICE_ACCEPT received
debug1: Authentications that can continue: publickey,password
debug1: Next authentication method: publickey
debug1: Offering RSA public key: /home/maik/.ssh/id_rsa
debug1: Authentications that can continue: publickey,password
debug1: Trying private key: /home/maik/.ssh/id_dsa
debug1: Trying private key: /home/maik/.ssh/id_ecdsa
debug1: Trying private key: /home/maik/.ssh/id_ed25519
debug1: Next authentication method: password
maik@localhost's password:
debug1: Authentications that can continue: publickey,password
Permission denied, please try again.
maik@localhost's password:
答案1
当我尝试连接到 ssh localhost 时,它会切换到 ssh maik@localhost,但我无法使用我的密钥登录。
您在步骤中输入了密码,ssh-add
因此如果可以正常工作,则无需再次输入ssh-agent
。“切换”可能是它正常工作的标志。您可以通过运行来验证它echo $SSH_CLIENT
,它应该会显示“您从哪里连接”。
但我不知道这句话的第二部分是什么意思。你能更精确、更详细地说明你想要什么以及会发生什么吗?
您的授权密钥需要具有不同的权限。该文件不应被其他任何人读取。您可以使用以下方法修复它chmod 600 ~/.ssh/authorized_keys
答案2
您可以通过运行以下命令来切换用户:
sudo su - <desired_user_name>
改变你想要成为的用户,例如sudo su - jenkins
您可能会遇到但与此票不严格相关的其他问题:
a) 公钥的权限最大需要为 600
chmod 600 ~/.ssh/authorized_keys
b)能够使用密码进行 ssh:编辑(sudo vim /etc/ssh/sshd_config
)并将“PasswordAuthentication no”更改为“PasswordAuthentication yes”,然后重新启动 sshd deamon bh 运行
sudo systemctl restart sshd
c)通过 ssh-copy-id 将公钥传递给远程主机:
ssh-copy-id <user>@<host_IP>