내 로컬 컴퓨터가 원격 서버에서 전달된 연결의 유효성을 검사하지 못하게 하는 원인이 무엇인지 전혀 모릅니다.
나는 이것에 관한 많은 게시물을 읽었으며 거의 모든 것을 시도했다고 맹세합니다.
내가 따라온 가이드는 여기에서 찾을 수 있습니다.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로 다시 localhost로 전달됩니다. 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