포트 포워딩 시 비밀번호 없는 SSH 인증을 강제할 수 없습니다.

포트 포워딩 시 비밀번호 없는 SSH 인증을 강제할 수 없습니다.

내 로컬 컴퓨터가 원격 서버에서 전달된 연결의 유효성을 검사하지 못하게 하는 원인이 무엇인지 전혀 모릅니다.

나는 이것에 관한 많은 게시물을 읽었으며 거의 ​​모든 것을 시도했다고 맹세합니다.

내가 따라온 가이드는 여기에서 찾을 수 있습니다.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

관련 정보