나는 / W 설치에 암호가없는 ssh를 B를 시도했습니다 A
에 B
와 B
에 A
뿐만 아니라. ssh-keygen -trsa
두 머신에서 모두 공개 및 개인 키를 생성했습니다 . 사용 된 ssh-copy-id
에서 공개 키를 복사 유틸리티 A
에 대한 B
뿐만 아니라 B
에 A
.
암호없는 SSH는에서 작동 A
을 B
하지만, 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
다음을 확인합니다 RSAAuthentication
및 PubkeyAuthentication
옵션을 사용할 수 없습니다. 기본값은 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