![端口转发时无法强制进行无密码 ssh 身份验证](https://linux22.com/image/49057/%E7%AB%AF%E5%8F%A3%E8%BD%AC%E5%8F%91%E6%97%B6%E6%97%A0%E6%B3%95%E5%BC%BA%E5%88%B6%E8%BF%9B%E8%A1%8C%E6%97%A0%E5%AF%86%E7%A0%81%20ssh%20%E8%BA%AB%E4%BB%BD%E9%AA%8C%E8%AF%81.png)
我完全不知道是什么阻止我的本地计算机验证从远程服务器转发的连接。
我读过很多关于这个的帖子,我发誓我已经尝试过几乎所有的事情。
我一直遵循的指南可以在这里找到:http://www.zeespencer.com/articles/building-a-remote-pairing-setup/
基本上我陷入困境的是强制无密码身份验证。如果我在 sshd_config 中允许密码,当我连接到pair@pair-server 时,系统会提示我输入本地用户密码并且能够远程登录,因此我会被转发。但是,一旦我关闭它,我就会得到以下信息
λ ssh pair@pair-server
Permission denied (publickey).
Connection to pair-server closed.
这里的详细输出:https://gist.github.com/anonymous/0c2b3892596d5ded6abb
我目前在pair@pair-server 的.ssh/authorized_keys 中有我的本地用户key.pub,这些命令被定向到ssh 返回本地主机。 pair@pair-server 有它自己的密钥,在我的计算机上,我已将pair@pair-server 的key.pub 添加到.ssh/authorized_keys 中。
sshd_config 中看似相关的行:
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile %h/.ssh/authorized_keys
PermitEmptyPasswords no
PasswordAuthentication no
UseLogin no
配对服务器上 /etc/pam.d/sshd 中的帐户和会话设置:
account required pam_nologin.so
account include password-auth
# pam_selinux.so close should be the first session rule
session required pam_selinux.so close
session required pam_loginuid.so
# pam_selinux.so open should only be followed by sessions to be executed in the user context
session required pam_selinux.so open env_params
session optional pam_keyinit.so force revoke
session include password-auth
密码验证配置:
#%PAM-1.0
# This file is auto-generated.
# User changes will be destroyed the next time authconfig is run.
auth required pam_env.so
auth sufficient pam_unix.so nullok try_first_pass
auth requisite pam_succeed_if.so uid >= 500 quiet
auth required pam_deny.so
account required pam_unix.so
account sufficient pam_localuser.so
account sufficient pam_succeed_if.so uid < 500 quiet
account required pam_permit.so
password requisite pam_cracklib.so try_first_pass retry=3 type=
password sufficient pam_unix.so sha512 shadow nullok try_first_pass use_authtok
password required pam_deny.so
session optional pam_keyinit.so revoke
session required pam_limits.so
session [success=1 default=ignore] pam_succeed_if.so service in crond quiet use_uid
session required pam_unix.so
.ssh 权限:
node-v0.8.25|ruby-1.9.3-p392|~|
λ ls -lhd .ssh
drwx------ 2 dan dan 4.0K Jul 10 19:49 .ssh
操作系统:
λ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 13.04
Release: 13.04
Codename: raring
OpenSSH 客户端版本:
λ ssh -V
OpenSSH_6.1p1 Debian-4, OpenSSL 1.0.1c 10 May 2012
答案1
你的权限还好吗? .ssh 必须是 700。
答案2
感谢您努力帮助大家,真的很感激。不管怎样,ssh-agent 似乎是罪魁祸首。我忘记了在生成我自己的实例之前,我必须检查之前生成的实例是否已经在运行。我有大约 9 个正在运行。我不太了解 bash,但在这里我添加到远程服务器上的 .bashrc 中的 3 行使其正常工作:
pkill ssh-agent
exec "$(ssh-agent)"
ssh-add $HOME/.ssh/pair_key