내 환경의 모든 SSH 연결은 점퍼 박스를 통과합니다. 많은 Linux 서버가 있지만 이에 액세스하려면 먼저 SSH를 통해 Bastien 호스트에 연결해야 합니다.
특정 내부 호스트에서 계속 비밀번호를 묻는 메시지가 표시됨
firewall ~ $ ssh m4
Password:
그러나 다른 곳에서 m4로의 연결은 키 확인을 통해 제대로 작동합니다.
/var/log/secure
도움도 없고 오류도 없습니다.
Jul 27 21:34:57 m4 sshd[29240]: pam_unix(sshd:session): session opened for user root by (uid=0)
Jul 27 21:34:57 m4 sshd[29236]: Accepted keyboard-interactive/pam for root from firewall[192.168.9.248] port 4097 ssh2
but from another host, pubkey works fine
Jul 27 21:34:57 m4 sshd[29240]: Accepted publickey for root from m3[192.168.9.9] port 6090 ssh2
SSH에서 이 비밀번호 조합을 묻는 메시지를 표시하지만 다른 비밀번호 조합은 묻는 메시지를 표시하지 않는 이유는 무엇입니까?
답변1
ssh-add -L
나는 열쇠가 로드되었는지 확인하기 위해 달려갔습니다 .
firewall ~ $ ssh-add -L
ssh-rsa AAAAB3NzaC1yc2EAA.....snip.....VBQ== rsa-key-20170210
etc...
ssh -v m4
그런 다음 SSH가 무슨 일이 일어나고 있는지 확인하기 위해 달려갔습니다 . 그리고 전구의 순간을 보냈습니다.
firewall ~ $ ssh m4 -v
OpenSSH_6.6.1, OpenSSL 1.0.1e-fips 11 Feb 2013
debug1: Reading configuration data /root/.ssh/config
debug1: /root/.ssh/config line 11: Applying options for m4
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 56: Applying options for *
debug1: Connecting to m4 [192.168.9.74] port 22.
debug1: fd 3 clearing O_NONBLOCK
debug1: Connection established.
debug1: permanently_set_uid: 0/0
debug1: identity file /root/.ssh/id_rsa type 1
...snip
debug1: Enabling compatibility mode for protocol 2.0
debug1: Local version string SSH-2.0-OpenSSH_6.6.1
debug1: Remote protocol version 2.0, remote software version OpenSSH_5.3
debug1: match: OpenSSH_5.3 pat OpenSSH_5* compat 0x0c000000
debug1: SSH2_MSG_KEXINIT sent
debug1: SSH2_MSG_KEXINIT received
debug1: kex: server->client aes128-ctr hmac-sha1 none
debug1: kex: client->server aes128-ctr hmac-sha1 none
debug1: kex: diffie-hellman-group-exchange-sha256 need=20 dh_need=20
debug1: SSH2_MSG_KEX_DH_GEX_REQUEST(1024<7680<8192) sent
debug1: expecting SSH2_MSG_KEX_DH_GEX_GROUP
debug1: SSH2_MSG_KEX_DH_GEX_INIT sent
debug1: expecting SSH2_MSG_KEX_DH_GEX_REPLY
debug1: Server host key: RSA 23:87:00:00:00:00:00:00:N0:N0:N0
debug1: Host 'm4' is known and matches the RSA host key.
debug1: Found key in /root/.ssh/known_hosts:1869
debug1: ssh_rsa_verify: signature correct
debug1: SSH2_MSG_NEWKEYS sent
debug1: expecting SSH2_MSG_NEWKEYS
debug1: SSH2_MSG_NEWKEYS received
debug1: SSH2_MSG_SERVICE_REQUEST sent
debug1: SSH2_MSG_SERVICE_ACCEPT received
debug1: Authentications that can continue: publickey,gssapi-keyex,gssapi-with-mic,password,keyboard-interactive
debug1: Next authentication method: gssapi-keyex
debug1: No valid Key exchange context
debug1: Next authentication method: gssapi-with-mic
debug1: Unspecified GSS failure. Minor code may provide more information
No Kerberos credentials available (default cache: KEYRING:persistent:0)
debug1: Unspecified GSS failure. Minor code may provide more information
No Kerberos credentials available (default cache: KEYRING:persistent:0)
debug1: Next authentication method: keyboard-interactive
Password: ^C
이 문장이 debug1: /root/.ssh/config line 11: Applying options for m4
내 관심을 끌었습니다. 이 호스트에 특정한 내용이 있어서는 안 됩니다.
Host 10.99.2.23 # m4 drac
PasswordAuthentication=yes
PubkeyAuthentication=no
따라서 물리적 호스트는 콘솔 액세스를 위한 전용 OOB 포트가 있는 Dell 서버입니다. Dell에서는 이를 DRAC 포트라고 부르며 저는 DNS 레코드를 설정합니다.m4-drac
DRAC는 인증을 위해 SSH 공개 키를 사용하도록 구성되지 않았으므로 이 구성은 인증 시도를 차단합니다. 하지만 구성이 호스트 이름에 적용되었습니다.m4해시를 존중하지 않기 때문입니다.
답변ssh의 .config 파일은 해시를 주석 구분 기호로 처리하지 않습니다.