암호가없는 ssh가 작동하지 않습니다 2009 년 월에는 OpenSSL 0.9.8k 25)는 B데비안

나는 / W 설치에 암호가없는 ssh를 B를 시도했습니다 ABBA뿐만 아니라. ssh-keygen -trsa두 머신에서 모두 공개 및 개인 키를 생성했습니다 . 사용 된 ssh-copy-id에서 공개 키를 복사 유틸리티 A에 대한 B뿐만 아니라 BA.

암호없는 SSH는에서 작동 AB하지만, not에서 B까지 A. ~ / ssh / 폴더의 권한을 확인했으며 정상적인 것 같습니다.

A's .ssh 폴더 권한 :

-rw-------  1 root root 13530 2011-07-26 23:00 known_hosts
-rw-------  1 root root   403 2011-07-27 00:35 id_rsa.pub
-rw-------  1 root root  1675 2011-07-27 00:35 id_rsa
-rw-------  1 root root   799 2011-07-27 00:37 authorized_keys
drwxrwx--- 70 root root  4096 2011-07-27 00:37 ..
drwx------  2 root root  4096 2011-07-27 00:38 .

B's .ssh 폴더 권한 :

-rw------- 1 root root  884 2011-07-07 13:15 known_hosts
-rw-r--r-- 1 root root  396 2011-07-27 00:15 id_rsa.pub
-rw------- 1 root root 1675 2011-07-27 00:15 id_rsa
-rw------- 1 root root 2545 2011-07-27 00:36 authorized_keys
drwxr-xr-x 8 root root 4096 2011-07-06 19:44 ..
drwx------ 2 root root 4096 2011-07-27 00:15 .

A우분투 10.04 (OpenSSH_5.3p1 데비안 3ubuntu4 2009 년 월에는 OpenSSL 0.9.8k 25)는 B데비안 기계 (OpenSSH_5.1p1 데비안-5 2007 년에는 OpenSSL 0.9.8g 10월 19일)

보낸 사람 A:

#ssh B

잘 작동합니다.

보낸 사람 B:

#ssh -vvv A
...
...
debug1: SSH2_MSG_SERVICE_ACCEPT received
debug2: key: /root/.ssh/identity ((nil))
debug2: key: /root/.ssh/id_rsa (0x7f1581f23a50)
debug2: key: /root/.ssh/id_dsa ((nil))
debug3: Wrote 64 bytes for a total of 1127
debug1: Authentications that can continue: publickey,password
debug3: start over, passed a different list publickey,password
debug3: preferred gssapi-keyex,gssapi-with-mic,gssapi,publickey,keyboard-interactive,password
debug3: authmethod_lookup publickey
debug3: remaining preferred: keyboard-interactive,password
debug3: authmethod_is_enabled publickey
debug1: Next authentication method: publickey
debug1: Trying private key: /root/.ssh/identity
debug3: no such identity: /root/.ssh/identity
debug1: Offering public key: /root/.ssh/id_rsa
debug3: send_pubkey_test
debug2: we sent a publickey packet, wait for reply
debug3: Wrote 368 bytes for a total of 1495
debug1: Authentications that can continue: publickey,password
debug1: Trying private key: /root/.ssh/id_dsa
debug3: no such identity: /root/.ssh/id_dsa
debug2: we did not send a packet, disable method
debug3: authmethod_lookup password
debug3: remaining preferred: ,password
debug3: authmethod_is_enabled password
debug1: Next authentication method: password
root@192.168.122.1's password:

본질적으로 파일을 사용하여 인증하지 않음을 의미합니다 /root/id_rsa. ssh-add두 머신 모두 에서 명령을 실행했습니다 .

/etc/ssh/sshd_config파일 의 인증 부분 은

# Authentication:
LoginGraceTime 120
PermitRootLogin yes
StrictModes yes

RSAAuthentication yes
PubkeyAuthentication yes
#AuthorizedKeysFile     %h/.ssh/authorized_keys

# Don't read the user's ~/.rhosts and ~/.shosts files

아이디어가 부족합니다. 도움을 주시면 감사하겠습니다.



답변

다음 절차를 따르십시오.

머신 A에서

터미널을 열고 다음과 같이 명령을 입력하십시오.

root@aneesh-pc:~# id

우리가 루트인지 확인하기 위해.

우리는 다음과 같은 위의 명령 출력 뭔가가 사용하는 루트 루트 다른 스위치 경우 su명령을

uid=0(root) gid=0(root) groups=0(root)

1) 키를 작성하십시오.

ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
49:7d:30:7d:67:db:58:51:42:75:78:9c:06:e1:0c:8d root@aneesh-pc
The key's randomart image is:
+--[ RSA 2048]----+
|          ooo+==B|
|         . E=.o+B|
|        . . .+.*o|
|       . . .  ...|
|        S        |
|                 |
|                 |
|                 |
|                 |
+-----------------+

비밀번호 문구를 사용하지 않았습니다. 필요한 것이 있으면 사용할 수 있습니다.

2) 공개 키를 시스템 B의 .ssh/authorized_keys파일 에 복사 하십시오.

root@aneesh-pc:~# ssh-copy-id -i /root/.ssh/id_rsa.pub root@mylap
root@mylap's password:

이제로 시스템에 로그인 ssh 'root@mylap'하고 체크인하십시오.

~/.ssh/authorized_keys

예상치 못한 키를 추가하지 않았는지 확인하십시오.

mylap을 로그인하려는 컴퓨터 (예 : 컴퓨터 B)의 호스트 이름 또는 IP로 바꾸십시오.

3) 비밀번호없이 B에 로그인

root@aneesh-pc:~# ssh root@mylap
Warning: Permanently added 'mylap,192.168.1.200' (RSA) to the list of known hosts.
Welcome to Ubuntu 11.04 (GNU/Linux 2.6.38-8-generic x86_64)

 * Documentation:  https://help.ubuntu.com/

Last login: Wed Jul 27 15:23:58 2011 from streaming-desktop.local
aneesh@mylap:~$

머신 B에서

4) 머신 A에 다시 로그인 할 키를 작성하십시오.

root@mylap:~# ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
35:9f:e7:81:ed:02:f9:fd:ad:ef:08:c6:4e:19:76:b1 root@streaming-desktop
The key's randomart image is:
+--[ RSA 2048]----+
|                 |
|                 |
|          o   .  |
|         . + + o |
|        S o * E  |
|           = O . |
|            O +  |
|           + o o.|
|            . o+=|
+-----------------+

5) 공개 키를 시스템 A의 .ssh/authorized_keys파일 에 복사 하십시오.

root@mylap:~# ssh-copy-id -i /root/.ssh/id_rsa.pub root@aneesh-pc
Warning: Permanently added 'aneesh-pc,192.168.1.20' (RSA) to the list of known hosts.
root@aneesh-pc's password:

이제로 시스템에 로그인 ssh 'root@aneesh-pc'하고 체크인하십시오.

.ssh/authorized_keys

예상치 못한 키를 추가하지 않았는지 확인하십시오.

6) 비밀번호없이 A에 로그인

ssh root@aneesh-pc
Warning: Permanently added 'aneesh-pc,192.168.1.20' (RSA) to the list of known hosts.
Welcome to Ubuntu 11.04 (GNU/Linux 2.6.38-8-generic x86_64)

 * Documentation:  https://help.ubuntu.com/


Last login: Tue Jul 26 18:52:55 2011 from 192.168.1.116

이 단계를 완료 할 수 있으면 완료된 것입니다. 이제 ssh-key (공개 키) 사용 로그인을 사용하는 두 대의 시스템이 있습니다.


답변

암호가없는 ssh를 설정 한 후에도 여전히 사용자 암호를 묻는 메시지가 표시되었습니다. /var/log/auth.log원격 컴퓨터를 살펴보면 문제가 지적되었습니다.

sshd[4215]: Authentication refused: bad ownership or modes for directory /home/<user>

따라서 올바른지 확인하십시오.

chmod o-w ~/
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys

다른 사용자가 .ssh폴더 를 쓰지 못하도록하는 것은 분명하지만 홈 폴더에 대해 동일한 요구 사항을 갖는 것이 더 까다로 웠습니다.

또한, 검사는 /etc/ssh/ssd_config다음을 확인합니다 RSAAuthenticationPubkeyAuthentication옵션을 사용할 수 없습니다. 기본값은 yes문제가되지 않도록하는 것입니다.


답변

아마도 더 높은 수준의 권한 문제 일 것입니다. 그룹 및 기타 홈 디렉토리 및 .ssh 디렉토리에 대한 쓰기 권한제거 해야합니다 . 이러한 권한을 수정하려면 chmod 755 ~ ~/.ssh또는을 실행하십시오 chmod go-w ~ ~/.ssh.

여전히 문제가 발생하면 로그에 다음 grep을 발행하십시오.

sudo egrep -i 'ssh.*LOCAL_USER_NAME' /var/log/secure

( LOCAL_USER_NAME로컬 사용자 이름으로 바꿉니다 …)

sshd 인증 정보가 보안 로그에 기록되고 있다고 가정하면 문제에 대해 더 많이 알려주십시오. 이는 기본적으로 있어야합니다. 다음과 같은 오류가 표시되는 경우 :

날짜 호스트 이름 sshd [1317] : 인증 거부 : 디렉토리 / path / to / some / directory에 대한 소유권 또는 모드가 잘못되었습니다

위에서 설명한 문제이므로 문제의 디렉토리를 찾아 그룹 및 기타에서 쓰기 권한을 제거해야합니다.

쓰기 권한을 홈 디렉토리로 제한해야하는 이유 (이미 .ssh 및 후속 디렉토리에서 권한이 이미 제한되어 있음에도 불구하고) 다른 사용자가 .ssh 디렉토리의 이름을 바꾸고 새 디렉토리를 만들 수 있습니다. 대부분의 사용자에 대한 수정은 디렉토리의 내용을 확인하는 대신 권한을 변경하는 것입니다 (잘못된 권한으로 인해) 그대로 사용할 수 없습니다 …

TLDNR : 그룹 및 / 또는 다른 홈 디렉토리에 대한 쓰기 액세스를 허용하면 ssh 강제 비밀번호 로그인이 작성됩니다.


답변

각 컴퓨터에서 루트 계정을 사용하고 있습니까? 보통 우분투에서는 사용자 계정을 사용하고 필요에 따라 sudo 권한을 부여합니다.

루트가 아닌 사용자 sudo chown $USER -R ~/.ssh를 사용하여 문제를 해결할 수있는 경우

확인해야 할 다른 사항 :

B id_rsa.pub가 A에 있는지 다시 확인하십시오 authorized_keys.

A가 /etc/ssh/sshd_config포함되어 있는지 확인

PermitRootLogin yes
RSAAuthentication yes
PubkeyAuthentication yes

답변

대상 변경의 / etc / ssh / sshd_config

허가 루트 로그인

허가 루트 로그인 예

그런 다음 sshd PID를 -HUP하십시오.

root @ dzone2 # ps -ef | grep ssh root 28075 27576 0 11 월 17 일? 6:11 / usr / lib / ssh / sshd

root 17708 20618   0 10:09:30 pts/37      0:00 grep ssh root@dzone2 # kill -HUP 28075 root@dzone2 # ps -ef|grep ssh
root 17861 20618   0 10:09:44 pts/37      0:00 grep ssh
root 17852 27576   0 10:09:42 ?           0:00 /usr/lib/ssh/sshd