GitHub에 인증할 수 없는 이유는 무엇입니까?

GitHub에 인증할 수 없는 이유는 무엇입니까?
my_username@my_username-laptop MINGW64 ~ (master)
$ ssh-keygen -t dsa
Generating public/private dsa key pair.
Enter file in which to save the key (/c/Users/my_username/.ssh/id_dsa):Enter
Enter passphrase (empty for no passphrase):Enter
Enter same passphrase again: Enter
Your identification has been saved in /c/Users/my_username/.ssh/id_dsa.
Your public key has been saved in /c/Users/my_username/.ssh/id_dsa.pub.
The key fingerprint is: Enter
SHA256:KMLyesG1eWkXq1iI4y7i+4bmVKgZBdCnReukvJgrtP0 my_username@my_username-laptop
The key's randomart image is: Enter
+---[DSA 1024]----+
|+. ..            |
| .. o.           |
|  .+o            |
| +o+.  ..        |
|oo=+o+..So       |
|.O*o+.= o        |
|*o*o = o         |
|=*oo. .          |
|OB=..E           |
+----[SHA256]-----+

my_username@my_username-laptop MINGW64 ~ (master)
$ cd .ssh

my_username@my_username-laptop MINGW64 ~/.ssh (master)
$ cd ~/.ssh

my_username@my_username-laptop MINGW64 ~/.ssh (master)
$ ls
github_rsa      id_dsa      known_hosts   rsa_key_pair.pub
github_rsa.pub  id_dsa.pub  rsa_key_pair

my_username@my_username-laptop MINGW64 ~/.ssh (master)
$ ls -la
total 45
drwxr-xr-x 1 my_username 197121    0 Nov 17 23:43 ./
drwxr-xr-x 1 my_username 197121    0 Nov 17 23:08 ../
-rw-r--r-- 1 my_username 197121  668 Nov 17 23:43 id_dsa
-rw-r--r-- 1 my_username 197121  614 Nov 17 23:43 id_dsa.pub

my_username@my_username-laptop MINGW64 ~/.ssh (master)
$ cat id_dsa.pub
ssh-dss AAAAB3NzaC1kc3MAAACBAOrkqv9wt7WcngRfKSaMrCSXn8BfJZN7wEJWvpuqpTYWBzCAylqUSVA+GpMuXGhaDdwHJFftmoxi81PnASpIoZZrIRgqRHRnQph9DnQikB1Bkf4B+EpzD3EwKYWRUOFrHwnjPU1ByRgFOTADXn/O9SIj+9APKer9xFNHaBvv9AvDAAAAFQCYK15hX9llcyIPsHedNTpE0BhgaQAAAIAZ3xOjbu1Vs0yposrwfHdc1+WoUdt89Y8a2YEvmeToR7/M7SM6IPPgbxLTz6l32pbmFFUDknMpX0rL/VaP/ygLifKJDxtWlE2doQR+2FwsvQKnk1wyXlYGXPCaI6flxqJRVV8/VJapQBRAC/cC6g6MNPbTs9GyV/z/SYBE/f4EhgAAAIEAlVinwInGC2gfWL5y7iPmv4gHWuJx0bmGq8Dc5UGdB99uxGRkdOlPFQ8BP6dZ1T8+DlikwPE2CH7RNIb+08KEvtdRJCy++6x0wnvL6ApPM1szNL+gUdL8X2/Mt9r2bj3LvjIrz21u4lXgOa+OsCanu4yUfHhPcj5YgQrrrn3P0Gs= my_username@my_username-laptop

my_username@my_username-laptop MINGW64 ~/.ssh (master)

my_username@my_username-laptop MINGW64 ~ (master)
$ ssh -vT [email protected]
OpenSSH_7.1p1, OpenSSL 1.0.2d 9 Jul 2015
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: Connecting to github.com [192.30.252.129] port 22.
debug1: Connection established.
debug1: key_load_public: No such file or directory
debug1: identity file /c/Users/my_username/.ssh/id_rsa type -1
debug1: key_load_public: No such file or directory
debug1: identity file /c/Users/my_username/.ssh/id_rsa-cert type -1
debug1: key_load_public: No such file or directory
debug1: identity file /c/Users/my_username/.ssh/id_dsa type -1
debug1: key_load_public: No such file or directory
debug1: identity file /c/Users/my_username/.ssh/id_dsa-cert type -1
debug1: key_load_public: No such file or directory
debug1: identity file /c/Users/my_username/.ssh/id_ecdsa type -1
debug1: key_load_public: No such file or directory
debug1: identity file /c/Users/my_username/.ssh/id_ecdsa-cert type -1
debug1: key_load_public: No such file or directory
debug1: identity file /c/Users/my_username/.ssh/id_ed25519 type -1
debug1: key_load_public: No such file or directory
debug1: identity file /c/Users/my_username/.ssh/id_ed25519-cert type -1
debug1: Enabling compatibility mode for protocol 2.0
debug1: Local version string SSH-2.0-OpenSSH_7.1
debug1: Remote protocol version 2.0, remote software version libssh-0.7.0
debug1: no match: libssh-0.7.0
debug1: Authenticating to github.com:22 as 'git'
debug1: SSH2_MSG_KEXINIT sent
debug1: SSH2_MSG_KEXINIT received
debug1: kex: server->client [email protected] <implicit> none
debug1: kex: client->server [email protected] <implicit> none
debug1: expecting SSH2_MSG_KEX_ECDH_REPLY
debug1: Server host key: ssh-rsa SHA256:nThbg6kXUpJWGl7E1IGOCspRomTxdCARLviKw6E5SY8
debug1: Host 'github.com' is known and matches the RSA host key.
debug1: Found key in /c/Users/my_username/.ssh/known_hosts:1
Warning: Permanently added the RSA host key for IP address '192.30.252.129' to the list of known hosts.
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
debug1: Next authentication method: publickey
debug1: Trying private key: /c/Users/my_username/.ssh/id_rsa
debug1: Trying private key: /c/Users/my_username/.ssh/id_dsa
debug1: Trying private key: /c/Users/my_username/.ssh/id_ecdsa
debug1: Trying private key: /c/Users/my_username/.ssh/id_ed25519
debug1: No more authentication methods to try.
Permission denied (publickey).

my_username@my_username-laptop MINGW64 ~ (master)
$ ssh-agent -s
SSH_AUTH_SOCK=/tmp/ssh-8kgSDhweA5gl/agent.11684; export SSH_AUTH_SOCK;
SSH_AGENT_PID=13892; export SSH_AGENT_PID;
echo Agent pid 13892;

my_username@my_username-laptop MINGW64 ~ (master)
$ ssh-add -l
Could not open a connection to your authentication agent.

my_username@my_username-laptop MINGW64 ~ (master)
$

답변1

DSA 키를 사용하고 있는 것으로 확인되었습니다. 기본적으로 OpenSSH 7.0 이상에서는 DSA 키 지원을 비활성화합니다. 이것이 문제의 원인인지 확인할 수 있습니다. 바라보다SSH가 계속 공개 키를 건너뛰고 비밀번호를 묻습니다.그리고https://superuser.com/q/1016989/93541.

답변2

  1. 공개 키를 사용하여 SSH 클라이언트를 서버에 인증하려면 클라이언트에서 키 쌍을 생성하고 클라이언트에 개인 키를 보관한 다음공개 키를 authorized_keys서버의 파일 에 복사귀하가 소유 해야 하며 ~/.ssh소유자의 권한(일반적으로 600이라고도 함 rw-------)만 가지고 있어야 합니다. 당신은 두 번째 부분을 수행하지 않았습니다. 너무 복잡하다면 많은 시스템에는 ssh-copy-id많은 작업과 오류 검사를 수행하는 스크립트가 있습니다.

  2. ssh-agent키 파일은 기본 위치에 있고 비밀번호가 없으므로 그럴 필요가 없습니다 .

  3. 사용하려면 ssh-agent다음을 수행해야 합니다.새로운 프로세스를 실행하거나예를 들어 ssh-agent에이전트 프로세스에 액세스하도록 설정된 환경 변수가 있는 새 셸 또는 새 터미널(본질적으로 새 셸이 있음)아니면 당신의 껍질을 가지고evalssh-agent쉘에서 이러한 환경 변수를 설정하기 위한 출력입니다 . 당신도 그러지 않았어요. 매뉴얼 페이지에서:

 There are two main ways to get an agent set up: The first is that the
 agent starts a new subcommand into which some environment variables are
 exported, eg ssh-agent xterm &.  The second is that the agent prints the
 needed shell commands (either sh(1) or csh(1) syntax can be generated)
 which can be evaluated in the calling shell, eg eval 'ssh-agent -s' for
 Bourne-type shells such as sh(1) or ksh(1) and eval 'ssh-agent -c' for
 csh(1) and derivatives.

 Later ssh(1) looks at these variables and uses them to establish a con-
 nection to the agent.

관련 정보