SSH 모드를 사용하여 GIT를 설정하려고 합니다. 중앙 GIT 저장소는 Windows 2008 서버를 실행하는 NAS 장치에 있고 사용자 GIT 저장소는 ubuntu 12.04에 있습니다.
Windows 시스템에 SSH를 시도했지만 성공적으로 들어갈 수 없습니다.
SSH 키가 설정되지 않았지만 올바른 비밀번호를 제공하는 것만으로는 들어갈 수 없기 때문에 그 이전에도 문제가 있는 것 같습니다. SSH 명령의 출력은 다음과 같습니다.
dba@clpserv01:~$ ssh -v -l administrator clpnas
OpenSSH_5.9p1 Debian-5ubuntu1, OpenSSL 1.0.1 14 Mar 2012
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 19: Applying options for *
debug1: Connecting to clpnas [***.***.***.***] port 22.
debug1: Connection established.
debug1: identity file /home/dba/.ssh/id_rsa type -1
debug1: identity file /home/dba/.ssh/id_rsa-cert type -1
debug1: identity file /home/dba/.ssh/id_dsa type -1
debug1: identity file /home/dba/.ssh/id_dsa-cert type -1
debug1: identity file /home/dba/.ssh/id_ecdsa type -1
debug1: identity file /home/dba/.ssh/id_ecdsa-cert type -1
debug1: Remote protocol version 2.0, remote software version OpenSSH_5.5p1 Debian-6+squeeze2
debug1: match: OpenSSH_5.5p1 Debian-6+squeeze2 pat OpenSSH*
debug1: Enabling compatibility mode for protocol 2.0
debug1: Local version string SSH-2.0-OpenSSH_5.9p1 Debian-5ubuntu1
debug1: SSH2_MSG_KEXINIT sent
debug1: SSH2_MSG_KEXINIT received
debug1: kex: server->client aes128-ctr hmac-md5 none
debug1: kex: client->server aes128-ctr hmac-md5 none
debug1: SSH2_MSG_KEX_DH_GEX_REQUEST(1024<1024<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 bd:37:d1:98:51:2a:d6:b5:f5:c7:98:d8:74:2c:4e:cd
debug1: Host 'clpnas' is known and matches the RSA host key.
debug1: Found key in /home/dba/.ssh/known_hosts:1
debug1: ssh_rsa_verify: signature correct
debug1: SSH2_MSG_NEWKEYS sent
debug1: expecting SSH2_MSG_NEWKEYS
debug1: SSH2_MSG_NEWKEYS received
debug1: Roaming not allowed by server
debug1: SSH2_MSG_SERVICE_REQUEST sent
debug1: SSH2_MSG_SERVICE_ACCEPT received
debug1: Authentications that can continue: publickey,password,keyboard-interactive
debug1: Next authentication method: publickey
debug1: Trying private key: /home/dba/.ssh/id_rsa
debug1: Trying private key: /home/dba/.ssh/id_dsa
debug1: Trying private key: /home/dba/.ssh/id_ecdsa
debug1: Next authentication method: keyboard-interactive
Password:
debug1: Authentications that can continue: publickey,password,keyboard-interactive
Password:
답변1
가장 먼저 할 일은 홈 폴더에 대한 권한을 확인하는 것입니다.
*nix 명령줄에서 다음 명령을 실행합니다.
1) 홈 디렉터리로 이동합니다.
cd ~
2) 홈 디렉토리에 대한 권한을 확인하십시오.
ls -dl
(if that doesn't work, try sudo -dl)
결과는 다음과 유사해야 합니다.
drw------- 10 shaheed shaheed 4096 Nov 20 09:44 .
두 번째부터 네 번째 문자는 사용자의 권한을 나타내며 이 경우에는 rw-
읽기/쓰기가 가능합니다. 메모: 대신에 말한다면 rwx
그게 문제입니다. ssh는 보안 문제로 인해 홈 디렉토리에 쓰기 권한이 있는 것을 좋아하지 않습니다.
내 생각엔 당신의 글이 다음과 비슷할 것 같습니다.
drwx------ 10 shaheed shaheed 4096 Nov 20 09:44 .
네 번째 위치의 문자 x는 사용자에게 디렉터리에 대한 실행 권한이 있음을 나타냅니다. 이것은 안돼요.
이 상황을 해결하려면 다음 명령을 사용하여 실행 권한을 제거하십시오.
chmod 600 .
그런 다음 다음 명령을 실행하여 권한이 올바르게 설정되었는지 확인합니다.
ls -dl
다음 메시지가 표시됩니다.
ls: cannot access .: Permission denied
더 이상 실행 권한이 없다는 것을 나타내는 것은 좋은 일입니다.
다음 실행:
sudo ls -dl
그리고 당신은 모든 것이 사랑이라는 것을 확인할 수 있을 것입니다! 결과는 다음과 유사해야 합니다.
drw------- 10 shaheed shaheed 4096 Nov 20 09:44 .
이제 git 사용자 비밀번호를 입력하지 않고도 ssh에 접속할 수 있습니다.