Putty : 서버 가져 오기에서 키 오류를 거부했습니다.


86

puttygen.exe(클라이언트는 Windows 8)을 사용하여 키 쌍을 만들었습니다 . 서버 (Ubuntu 12.04.3 LTS)에서 공개 키를 ~/.ssh/authorized_keys. 공개 키는 다음과 같습니다.

ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAQEAopfM6RHOgnuc4Aftn3t4k5UIAT3StCAbn/vg/IMbphbXadshC+79sIlRq3P4zGzMjFTP4hKnzu6ehLV5lmj/qorq3SKT+bPO5Qrac3VbIlrGvuBFDDjP82I2Hwg3HzlsFTstqk++KToapaTYZ7jENEYyPl2wnzITJnt//+4U1o6juoXTKgdNE02hHnRZyHOV/bnkZyJJCEwJv5U0eXSThQnhmXtUxGT8U0HQNFiXfqIIVllhWiCnyrhhIaKz/CIJNAd2VmzyJzQtJtTQX8aWSNVrZju6Sv2/RncTNvsACdNgjjh/FH8PQXaep00jlJ3MOdsC8vz6VSPFbh6iKy1oLQ== rsa-key-20131231

따라서 정확합니다 (한 줄, 주석 없음, ssh-rsa 등으로 시작)

.ssh dir 권한 수준은 700이고 authorized_keys 파일 권한은 600입니다. 로그인을 시도하는 실제 사용자가 소유 한 디렉터리와 파일입니다.

연결을 시도 할 때 'server refused our key'서버가 비밀번호를 요청합니다. 그게 다야. /var/log/auth.log키로 로그인을 시도 할 때 아무것도 기록되지 않습니다 .

나는 모든 곳을 보았고 모든 기사와 팁은 파일 / 디렉토리에 대해 chmod 600 및 700을 설정하고 키를 올바르게 형식화하는 것에 대해 언급합니다. 나는이 모든 것을 여전히 '우리의 열쇠를 거부했습니다'라는 오류를 받고 있으며 아이디어가 없습니다.


2
Putty에게 같은 키를 사용하라고 말 했나요? 동일한 사용자로 로그인하고 있습니까? 이것이 기본 SSH 설치입니까, 아니면 sshd_config를 수정 했습니까?
Noam Rathaus

Puttygen은 개인, 공개 및 확장명이 .ppk 인 개인 키의 3 가지 키를 생성합니다. 물론 putty.exe와 함께 .ppk를 사용하고 공개 키를 서버의 .ssh / authorized_keys에 붙여 넣었습니다. 기본 SSH 설치 / 구성이며 sshd_config를 수정하지 않았습니다.
PawelRoman

BTW, .ssh 디렉토리와 auhtorized_keys를 만들어야했습니다. 새로운 Ubuntu 설치이고 거기에 없었기 때문입니다. 아마도 이것이 문제와 관련이 있습니까?
PawelRoman

3
가되지 않을 수도 있는지 sshd_config를가 공개 키를 사용하도록 구성되어 있는지 확인
노암 시청사

2
/var/log/auth.log에 아무것도 표시되지 않습니까? SSH의 로그 'LogLevel을로 늘리고 로그 된 DEBUG문제를 볼 수 있는지 확인합니다. 그래도 액세스하는 것이 표시되지 않는 경우 잘못된 로그 파일을보고 있습니다
Noam Rathaus

답변:


61

좋아요, 내 키에 작은 오타가 있습니다. 파일에 붙여 넣을 때 첫 번째 문자가 잘리고 ssh-rsa 대신 sh-rsa로 시작했습니다.

nrathathaus-귀하의 답변은 매우 도움이되었습니다. 감사합니다.이 답변은 귀하에게 감사드립니다. :) 나는 당신이 말한 것처럼 sshd_conf에 설정했습니다.

LogLevel DEBUG3

로그를 살펴보면 sshd가 키를 올바르게 읽지 만 잘못된 식별자로 인해 거부한다는 것을 깨달았습니다.


어떤 로그를 확인했으며 어디에 있습니까? 식별자는 무엇입니까?
user1046647 2014

3
@ user1046647 LogLevel/etc/ssh/sshd_config. /var/log/auth.log에서 달리 정의하지 않는 한 기본 로그는 입니다 sshd_config.
Axel Kemper 2015

똑같은 문제가 있었기 때문에 키 생성기에 뭔가가 있어야합니다!
Kevin

3
vim에서 authorized_key를 열고 즉시 'ssh_rsa'의 첫 번째 's'를 붙여 넣으려고하면 vim 명령으로 처리 된 후 vim이 삽입 모드로 전환되고 나머지 텍스트는 붙여 넣어집니다. 이전에 삽입 모드로 들어가면 붙여 넣기 (예 :를 사용하여 i) 선행 's'는 잘리지 않습니다.
Pawel

1
! sudo service ssh restart변경 사항이 적용됩니다. 그렇지 않으면 내 인증 로그 파일에 아무것도 없었습니다.
호건

30

다른 답변으로 몇 가지 생각을 추가하면 도움이되었지만 정확히 맞지 않았습니다.

먼저 수락 된 답변에서 언급했듯이

/etc/ssh/sshd_config

로그 수준을 설정합니다.

LogLevel DEBUG3

그런 다음 인증을 시도하고 실패하면 로그 파일을 찾습니다.

/var/log/secure

찾고있는 오류가 있습니다.


/var/log/존재하지만 secure존재하지 않습니다. 어떤 로그에 기록되고 있는지 어떻게 알 수 있습니까?
aliteralmind

11
기본값은 /var/log/auth.log적어도 내 Ubuntu 14.04.1에서입니다.
Axel Kemper 2015

예! 감사합니다! 내 pub 키 파일이 끝에 \ n 보이지 않는 것으로 밝혀졌습니다
alextsil

1
Linux / Ubuntu는 너무 답답합니다. secure여기에서 @axel 주석을 읽기 전에 파일 이없는 이유를 알아 내기 위해 20 분을 보냈습니다.
JYelton

17

제 경우에는 / home / user의 권한도 0755에서 0700으로 변경해야했습니다.


1
이것이 나를위한 원인과 해결책이었습니다
pstanton

4
자신이 폴더에 대한 700 및 authorized_keys에 600 문제 해결
데이비드 Soussan을

1
해결할 문제 나 동일한 내용 스푸핑 폴더 chmod를 700 및 600의 authorized_keys chmod를
오 쿠 찰스

.ssh 폴더 700 및 인증 키 600이 나를 위해 수정했습니다.
Deep-B

13

제 경우에는 권한 문제입니다.

로그 수준을로 변경 DEBUG3했는데 /var/log/secure다음 줄이 표시됩니다.

Authentication refused: bad ownership or modes for directory

Googled와이 게시물을 찾았습니다.

https://www.daveperrett.com/articles/2010/09/14/ssh-authentication-refused/

chmod g-w /home/your_user
chmod 700 /home/your_user/.ssh
chmod 600 /home/your_user/.ssh/authorized_keys

기본적으로 다음과 같이 알려줍니다.

  • 그룹을 없애다 w사용자 홈 디렉토리 권한
  • 로 변경 허가 700.ssh 디렉토리
  • 파일 600의 권한을 변경 authorized_keys하십시오.

그리고 그것은 작동합니다.

또 다른 것은 루트 로그인을 활성화해도 root작업을 할 수 없다는 것입니다. 다른 사용자를 사용하는 것이 좋습니다.


이 답변은 투표가 부족했습니다. 간과 된 홈 디렉터리 권한으로 인해 문제를 해결하는 데 하루 종일 비용이 발생할 수 있습니다.
chingNotCHing

투표 해 주셔서 감사합니다. 나는 내가 얻은 것을 공유합니다.
WesternGun

6

Windows 8.1을 실행하면 server refused our key문제가 발생했습니다.

가이드에 따라 : https://winscp.net/eng/docs/guide_windows_openssh_server Windows 로그인 usernamepassword. 그러나, 인증하는 usernameA의 결합 private key응답이었다server refused our key .

공개 키와 함께 작동하도록하는 것은 파일에 대한 권한으로 내려졌습니다 . C:\ProgramData\ssh\administrators_authorized_keys

이것은 유용한 페이지입니다 : https://github.com/PowerShell/Win32-OpenSSH/wiki/Troubleshooting-Steps

두 OpenSSH의 서비스를 중지, 다음을 열고 command prompt함께admin permissions . 그런 다음 다음을 실행하십시오. C:\OpenSSH-Win32>c:\OpenSSH-Win32\sshd.exe -ddd

참고 : 그렇지 않으면 sshd불평 하는 exe의 전체 경로를 지정하십시오 . 이렇게하면 일회성 연결 리스너가 생성됩니다. 그만큼-ddd 레벨 3 장황.

연결 후 로그를 스캔하면 다음과 같은 내용이 표시됩니다.

debug1: trying public key file __PROGRAMDATA__/ssh/administrators_authorized_keys
debug3: Failed to open file:C:/ProgramData/ssh/administrators_authorized_keys error:2
debug1: Could not open authorized keys '__PROGRAMDATA__/ssh/administrators_authorized_keys':
        No such file or directory

파일을 만들어야했습니다. 텍스트를 여기에 C:\ProgramData\ssh\administrators_authorized_keys 복사합니다 public key. 예 : ssh-rsa AAAA................MmpfXUCj rsa-key-20190505 그런 다음 파일을 저장합니다. 나는으로 파일을 저장 UTF-8BOM. 테스트하지 않음ANSI .

그런 다음 일회성 명령 줄을 다시 실행하면 로그에 다음과 같이 표시됩니다.

debug1: trying public key file __PROGRAMDATA__/ssh/administrators_authorized_keys
debug3: Bad permissions. Try removing permissions for user: S-1-5-11 on file C:/ProgramData/ssh/administrators_authorized_keys.
        Authentication refused.

S-1-5-11에 주어진 이름 System입니다.

을 수정하려면 파일을 Bad permissions마우스 오른쪽 버튼으로 클릭하고으로 이동 한 다음 버튼을 클릭하고 상속 된 권한을 제거합니다. 그런 다음 모두 삭제 Windows 로그인 이름을 제외하고, 예를 들면 : 그에 대한 권한이 있어야합니다 , 다른 모든 선택하지 않은 것입니다. 파일의 소유자도administrators_authorized_keysSecurity TabAdvancedGroup or user names:YourMachineName\usernameusernameRead AllowWrite DenyYourMachineName\username

이것은 문제를 해결했습니다.

기타 유용한 링크 :

https://github.com/PowerShell/Win32-OpenSSH/releases 에서 OpenSSH-Win32.zip을 다운로드합니다.

WinSCPnet.dll을 사용하여 OpenSSH 서버에 연결하는 방법에 대한 C # 예제 : https://winscp.net/eng/docs/library#csharp

다음은 다음을 사용하여 연결하는 코드 스 니펫입니다 WinSCPnet.dll.

static void WinSCPTest() {
    SessionOptions ops = new SessionOptions {
        Protocol = Protocol.Sftp, 
        PortNumber = 22,
        HostName = "192.168.1.188", 
        UserName = "user123",
        //Password = "Password1",
        SshHostKeyFingerprint = @"ssh-rsa 2048 qu0f........................ddowUUXA="
    };

    ops.SshPrivateKeyPath = @"C:\temp\rsa-key-20190505.ppk";

    using (Session session = new Session()) {
        session.Open(ops);
        MessageBox.Show("success");
    }
}

교체 SshHostKeyFingerprintSshPrivateKeyPath자신의 값.

편집 : administrators_authorized_keys 파일 권한의 스크린 샷 추가 : 여기에 이미지 설명 입력

OpenSSH SSH Server서비스로 실행되고, 만 System있는 권한이 있어야합니다. 그러나 sshd.exe명령 프롬프트에서 실행하는 경우 현재 사용자 만 나열되어야합니다 (읽기 허용, 쓰기 거부).


3
여기에서 도움이 된 많은 일을했습니다. 먼저 명령 줄에서 디버그 플래그를 사용하여 sshd를 실행합니다. Windows 서비스 시스템 로그는 거의 표시되지 않았으며 디버깅하는 데 전혀 쓸모가 없었습니다. 둘째, 관리자로서 administrators_authorized_keys 파일에서 예상되는 Users .ssh 폴더가 아닌 authorized_keys (Windows에서 sshd를 실행하는 모든 사람의 슬픔)가 아닌 버그가 있다는 주된 사실입니다. 마지막으로 ProgramData의 'ssh'폴더! 나는 그것이 서버 인증서 등을 어디에 두는지 궁금했다. 그래서 여기에 당신의 정보 만이 하루 정도 내 머리를 긁적 후에 나를 도왔다. 감사!
Master James

이 답변은 새로운 ec2 인스턴스 Windows 2019 프리 티어에서 나를 위해 일한 유일한 답변이었습니다.
yolob 21

3

나는 성공하지 않고 인터넷을 수색하는 데 시간을 보냈던 나와 같은 모든 사람을 돕기 위해이 답변을 추가하고 있습니다.

홈 폴더가 암호화 될 수 있습니다.

또는 "authorized_keys"파일이 중첩 된 폴더입니다. 저에게 많은 시간을 절약 할 수 있었을 것입니다. 확인하려면 수행하십시오

ls -A

암호화 상태를 확인하려는 디렉토리에 있습니다. 폴더에 ".encryptfs"라는 폴더가 포함되어 있으면 해당 폴더가 암호화됩니다. 이로 인해 확인에 필요한 공개 ssh 키가 포함 된 "authorized_keys"파일에 액세스 할 수 없습니다.

이를 수정하려면 암호화가 포함되지 않은 디렉토리 트리에 "authorized_key"파일을 배치하십시오.


3

내가 찾은 간단한 해결책 authorized_keys은 숨겨진 .ssh 디렉토리에서 파일 을 옮기고 시스템 ssh 디렉토리에 넣는 것입니다.

/etc/ssh/keys/authorized_keys

이 작업을 수행하자마자 문제없이 작동했습니다.


3

Windows Server 2008 r2에서 동일한 문제가 발생하고 해결하기 위해 많은 것을 탐구 한 후 마침내 다음과 같이했습니다.

텍스트 패드 또는 다른 텍스트 편집기로 C : \ Program Files (x86) \ OpenSSH \ etc \ sshd_config를 엽니 다.

다음 줄에서 주석을 제거하면 다음과 같이 표시됩니다.

RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile  .ssh/authorized_keys

그것을 저장하고 지금 개인 키로 로그인하십시오. 즐기세요.


이 곳 권한이 부여 된 키 파일을 찾을하는 :-( 모르는 있도록 authorizedkeysfile 라인이 주석 승 / SSH 때때로 설치
kenyee

authorized_keys 파일에 필요한 권한은 무엇입니까? 그리고 사용자 디렉터리에 있어야합니까 아니면 OpenSSH 디렉터리에 있어야합니까?
GarfieldKlon

OpenSSH 디렉토리 또는 OpenSSH를 설치 한 위치에 있어야합니다. 당신은 그것을 찾을 수 있어야합니다
라비 아난드

관리자 계정을 사용하여 설정하고 있는지 확인하십시오.
Ravi Anand

2

nrathaus 덕분에 /var/log/auth.log 에 디버그 수준에 대한 조사는 다음과 같습니다.

또 다른 이유는 홈 디렉토리가 755와 다른 권한을 가질 수 있기 때문입니다.


홈 디렉토리는 CentOS의 기본값 인 700이어야합니다.
karatedog

2

오늘이 문제가 발생했고 파일에서 공개 키를 복사 할 때 새 줄 문자도 포함된다는 문제가있었습니다. vim에서 ": set list"를 사용하여 숨겨진 새 줄을 모두보고 마지막 줄을 제외한 모든 새 줄을 삭제하십시오. 또한 내 키는 처음에 "ssh-rsa"가 누락되었습니다. 그것도 가지고 있는지 확인하십시오.


1
유사하게 : PuttyGen에서 복사 할 때 "ssh-rsa"와 키 뒤에 새로운 줄이 생겼습니다. 그들을 제거한 후 작동했습니다.
Lucian P.

1

Windows Server에서이 오류를 수신하는 사람들에게 동일한 오류가 발생했으며 이는 사용자 계정 문제였습니다. 많은 조직에서 관리자를위한 그룹 정책은 SSH 서버 및 연결 설정을 허용하지 않을 수 있습니다. 이러한 유형의 설정에서는 로컬 관리자 계정에서 수행해야합니다. 공개 키에 오타가 없음을 확인한 경우 살펴볼 가치가 있습니다.


1

제 경우에는 Centos6.6에서 SELinux를 비활성화해야 작동합니다. :)

/ etc / selinux / config를 편집하고 다음을 설정 한 후 호스트를 재부팅하십시오.

selinux=disabled

BTW ... 문제를 식별하기 위해 LogLevel = DEBUG3을 설정해야한다는 것을 잊었습니다.


1
SELinux를 비활성화하는 대신 .ssh 폴더에서 보안 컨텍스트를 변경할 수 있습니다. chcon -R -t ssh_home_t .ssh
palehorse jul.

1

solaris에서 동일한 오류가 발생했지만 /var/adm/splunk-auth.log에서 다음을 발견했습니다.

sshd: [auth.debug] debug1: PAM conv function returns PAM_SUCCESS
sshd: [auth.notice] Excessive (3) login failures for weblogic: locking account.
sshd: [auth.debug] ldap pam_sm_authenticate(sshd-kbdint weblogic), flags = 1
sshd: [auth.info] Keyboard-interactive (PAM) userauth failed[9] while authenticating: Authentication failed

/ etc / shadow에서 계정이 잠겼습니다.

weblogic:*LK*UP:16447::::::3

"* LK *"부분 제거 :

weblogic:UP:16447::::::3

평소와 같이 authorized_keys와 함께 ssh를 사용할 수 있습니다.


1

제 경우에는 ( /etc/ssh/sshd_config) :

PermitRootLogin no

로 변경 yes하고 서비스를 다시 시작하여 정상적으로 들어 왔습니다.


1

이 문제를 해결했습니다 .puttygen은 타사 소프트웨어로 생성 된 ssh 키는 직접 사용하지 않았으므로 변경해야합니다. 예를 들어 다음과 같습니다.

---- BEGIN SSH2 PUBLIC KEY ----
Comment: "rsa-key-20170502"
AAAAB3NzaC1yc2EAAAABJQAAAQEAr4Ffd3LD1pa7KVSBDU+lq0M7vNvLp6TewkP7
*******C4eq1cdJACBPyjqUCoz00r+LqkGA6sIFGooeVuUXTOxbYULuNQ==
---- END SSH2 PUBLIC KEY ---- 

중간에있는 알파벳 중 일부를 생략하고 *로 대체합니다. 그렇지 않은 경우 StackOverflow에서 코드 형식이 잘못되었다고 말했습니다. 게시하지 마십시오。

이것은 puttygen에 의해 생성 된 내 ssh 키입니다.

ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAQEAr4Ffd3LD1pa7KVSBDU+lq0M7vNvLp6TewkP7wfvKGWWR7wxA8GEXJsM01FQw5hYWbNF0CDI7nCMXDUEDOzO1xKtNoaidlLA0qGl67bHaF5t+0mE+dZBGqK7jG9L8/KU/b66/tuZnqFqBjLkT+lS8MDo1okJOScuLSilk9oT5ZiqxsD24sdEcUE62S8Qwu7roVEAWU3hHNpnMK+1szlPBCVpbjcQTdiv1MjsOHJXY2PWx6DAIBii+/N+IdGzoFdhq+Yo/RGWdr1Zw/LSwqKDq1SmrpToW9uWVdAxeC4eq1cdJACBPyjqUCoz00r+LqkGA6sIFGooeVuUXTOxbYULuNQ== yourname@hostname

제 경우에는 다음과 같은 일부 댓글을 삭제했습니다.

---- BEGIN SSH2 PUBLIC KEY ----
Comment: "rsa-key-20170502"
---- END SSH2 PUBLIC KEY ----

및 추가 ssh-rsa시작 부분에 추가, yourname@hostname마지막에. 참고 : ==마지막에 삭제하지 말고 "yourname"및 "hostname"을 변경해야합니다. 제 경우에는 uaskh@mycomputer, yourname은 vps에 로그인하려는 것입니다.이 모든 작업이 완료되면 공개 업로드 할 수 있습니다. -key uaskh의 가정에 ~/.ssh/authorized_keys의하여 cat public-key >> ~/.ssh/authorized_keys다음은 sudo chmod 700 ~/.ssh sudo chmod 600 ~/.ssh/authorized_keys다음은 수정하려면해야 / 등 / SSH / sshd_config를 RSAAuthentication yes PubkeyAuthentication yes AuthorizedKeysFile .ssh/authorized_keys내 운영 체제가 CentOS는 7,이 anwser 질문에 대한 내 첫 번째 시간입니다, 내가 할 수있는 내 노력을 다할 것입니다, 감사합니다!


1
@Ronak Bhatt, 저를 위해 노력해 주셔서 감사합니다.이 모든 코드에 대해 ctrl + K를 사용하여 코드를 더 명확하게 만들려고했지만 StackOverflow는 "귀하의 답변에 코드가 포함되어 있습니다. 올바른 형식을 사용하십시오"라고 말했고 그 이유가 무엇인지 모르겠습니다. 작성과 제출이 다르기 때문에 답변을 제출할 수 없어서 한 줄씩 '코드'에 코드를 추가해야합니다. 나는 마크 다운 형식을 배울 것이라고 생각한다.
원자력

현재 버전에서 PuttyGen은 복사 및 붙여 넣기를위한 올바른 형식으로 공개 키를 표시합니다. 따라서 더 이상 putty pub 키를 올바른 형식으로 수동으로 변환 할 필요가 없습니다.
Erik Kalkoken

1

오 마이 갓 나는 이것을 고치려고 며칠을 보냈다. 그래서 여기에 나를 위해 일한 것이 있습니다. 나는 다음과 같이 루트 폴드로 돌아갔습니다. cd / root / mkdir .ssh cd .ssh chmod 700 .ssh nano -w authorized_keys service ssh restart 그래서 루트를 사용하여 Putty를 통해 로깅하고 작동했습니다. 따라서 퍼티에서 사용하려는 사용자와 동일하게 시도하십시오.


1

내 경우에는 잘못된 user : group 속성이었습니다. 올바른 사용자 및 그룹 설정을 해결했습니다.

sudo chown [user]:[group] -R /home/[user]

0

psftp와 함께 PUTTYgen 파일을 사용하고 있는데 클라이언트에 대한 새 키를 만들어야 할 때 Windows Server에서이 문제가 발생했습니다. private_key_name의 .ppk 파일과 open_ssh.txt 파일 작업에 대한 연결에 대해 동일한 디렉토리에 있어야합니다.


0

제 경우에는 nfs의 집이 777이었고 750이 필요했습니다.이 문제가 해결되었습니다.


0

sshd가 authorized_keys2.

파일을 복사하거나 이름을 바꾸면 문제가 해결되었습니다.

cd  ~/.ssh
sudo cat authorized_keys >> authorized_keys2

추신 : Windows에서 Putty를 사용하고 있으며 키 쌍 생성을 위해 PuTTyKeygen을 사용했습니다.


0

Mobaxterm을 통해 로그온하려고 할 때 비슷한 문제가 발생했습니다. 개인 키는 puttygen을 통해 생성되었습니다. 제 경우에는 키를 다시 생성하는 것이 도움이되었습니다.


0

Cpanel을 사용할 때 키가 인증되었는지 확인할 수 있습니다.

SSH 액세스 >> 공개 키 >> 관리 >> 승인 또는 승인 취소.


0

이 오류가 발생하면 /var/log/secure

오류 : key_read : key_from_blob AA
AAB3NzaC1yc2EAAAABJQAAAQEAoo3PFwX04NFG + rKz93l7em1BsUBzjHPMsswD

.ppk파일 을 볼 때 puttgen을 통해 키를 생성하면 키에 공간이 있음을 의미합니다 .

AAAAB3NzaC1yc2EAAAABJQAAAQEAoo3PFwX04NFG+rKz93l7em1BsUBzjHPMsswD
al74MLaJyhQD0pE23NS1izahbo1sJGnSJu2VJ//zxidSsba6xa6OvmeiKTwCz0E5
GMefdGVdpdbTlv99qjBl1+Nw1tDnHIC0+v9XmeZERQfCds9Kp1UivfReoYImntBC
gLtNyqRYrSu8csJCt7E1oY8QK6WP1vfYgAQ2taGyS9+g7FHyyf5VY2vH3oWzzbqz
xjsSLAv3zEQSm1LzSw9Pvc8iwasFyUMBOPj31CKQYTXyX8KpJTr0Zb7oqMauBE5L
VwxZhlcJHbj0FsMbF/+GRjvgexymCi3bHmwGQ6FEADNd0RkhdQ==

붙여 넣으려고하면 키 읽기 오류가 발생하므로 키를 편집하고 한 줄로 만들어서 시도해보십시오.

이것은 뭔가처럼 보일 것입니다

ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAQEAoo3PFwX04NFG+rKz93l7em1BsUBzjHPMsswDal74MLaJyhQD0pE23NS1izahbo1sJGnSJu2VJ//zxidSsba6xa6OvmeiKTwCz0E5GMefdGVdpdbTlv99qjBl1+Nw1tDnHIC0+v9XmeZERQfCds9Kp1UivfReoYImntBCgLtNyqRYrSu8csJCt7E1oY8QK6WP1vfYgAQ2taGyS9+g7FHyyf5VY2vH3oWzzbqzxjsSLAv3zEQSm1LzSw9Pvc8iwasFyUMBOPj31CKQYTXyX8KpJTr0Zb7oqMauBE5LVwxZhlcJHbj0FsMbF/+GRjvgexymCi3bHmwGQ6FEADNd0RkhdQ== username@domainname


0

나를 위해 작동하는 것은 다음과 같습니다.

  • ec2 인스턴스를 중지했습니다.
  • 볼륨 분리
  • 동일한 키를 사용하여 이전 인스턴스에 볼륨을 연결하고 SSH를 수행 할 수있었습니다.
  • 일부 임시 폴더에 볼륨 마운트
  • mount_point / home / ec2-user / .ssh / authorized_keys 디렉토리에서 파일을 확인했습니다.
    • 이상적으로는이 파일에 주요 정보가 있어야하지만이 파일은 비어 있습니다.
  • 이전 인스턴스 authorized_keys 파일을 새로 마운트 된 볼륨에 복사했습니다.
  • 장치 마운트 해제
  • 원래 ec2 인스턴스에 다시 연결
  • 시작하고 상태 확인을 통과하게합니다.

이번에는 나를 위해 작동합니다. 하지만 인스턴스가 시작되었을 때 처음에 키 파일 정보가없는 이유를 모르겠습니다. 이 링크도 확인하십시오 https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/TroubleshootingInstancesConnecting.html#TroubleshootingInstancesConnectingMindTerm


0

제 경우에는 문제가 이와 같았습니다. ssh 키 생성 중에 의도적으로 키의 기본 디렉토리를 변경했습니다. 따라서 ~ / .ssh / authorized_keys 위치를 사용하는 대신 사용하기로 선택했습니다. ~/home/user/folder1/.ssh/authorized_keys이러한 변경 사항이 작동하려면이 파일의 새 위치에 대해 동일한 변경을 수행해야했습니다 /etc/ssh/sshd_config. 그러나 이것을 깨달을 때까지 나는 홈 폴더의 권한을 700.ssh 디렉토리로 설정하는 것을 포함하여 다른 사람들이 제안한 여러 솔루션을 이미 시도했습니다 600.


0

루트 마운트를 수정하는 단계 (ec2-user 폴더 및 인증 키 파일로 권한을 변경함에 따라 따랐습니다)이 프로세스는 펜 드라이브를 분리하고 연결하는 것과 유사합니다.

다음은 발생할 수있는 몇 가지 다른 시나리오입니다.

  1. SSH 개인 키를 사용하고 있지만 해당 공개 키가 authorized_keys 파일에 없습니다.
  2. authorized_keys 파일에 대한 권한이 없습니다.
  3. .ssh 폴더에 대한 권한이 없습니다.
  4. authorized_keys 파일 또는 .ssh 폴더의 이름이 올바르게 지정되지 않았습니다.
  5. authorized_keys 파일 또는 .ssh 폴더가 삭제되었습니다.

문제를 해결하는 단계

  • 문제가있는 Ec2 인스턴스 중지
  • 루트 볼륨 (/ dev / sda1) 분리
  • ec2 인스턴스 생성 또는 실행중인 인스턴스 사용
  • 분리 된 볼륨 (/ dev / sdvf)을 새 ec2 인스턴스에 마운트

이제 새 ec2에 로그인 한 후 아래 단계를 실행하십시오.

  • lsblk 명령-사용 가능한 모든 마운트 나열
  • 문제가있는 인스턴스에서 마운트 해제 한 마운트 값을 선택합니다.
  • ec2-user로 "sudo mount / dev / mapper / rootvg-home / mnt"를 실행합니다. sudo mount /dev/mapper/rootvg-home /mnt
  • 그런 다음 디렉토리를 / mnt로 변경하십시오.
  • 필요한 모든 변경

이제 우리가 직면 한 문제로 볼륨을 수정했습니다. 대부분 사용자 권한 문제 일 수 있습니다. Umount / mnt를 마운트 해제합니다. 이제 콘솔로 이동하여 새 인스턴스에 연결된 볼륨을 가리키고 분리합니다.-분리 후 새 볼륨에 / dev / sda1로 연결합니다.

그것으로 당신은 성공적으로 로그인 할 수 있어야합니다


0

내 경험에 비추어 볼 때, Linux 측에서 생성해서는 안되는 퍼티에서 키를 생성해야합니다. 키는 이전 PEM 형식이기 때문입니다. 어쨌든 내 제안입니다. 나는 아래 단계를 수행했고 나와 내 팀과 잘 협력했습니다.

  1. 로컬에서 PuTTYGen.exe를 사용하여 키 쌍을 생성합니다 (유형 : RSA, 길이 : 2048 비트).

  2. 개인 / 공개 키를 로컬에 " id_rsa.ppk / id_rsa.pub "파일로 저장합니다.

  3. 로컬에 "authorized_keys"파일을 생성 한 다음 " id_rsa.pub "에 " authorized_keys "에 공개 키를 입력합니다 . 내용은 " ssh-rsa " 로 시작해야 하며 한 줄로만 이루어져야 합니다 .

여기에 이미지 설명 입력

  1. 사용 WinSCP에 (또는 퍼티 명령) "복사 authorized_keys에 & id_rsa.pub를 당신의 리눅스 사용자 홈"에 해당 지역에서 " /home/$USER/.ssh/ ".

여기에 이미지 설명 입력

  1. 다음 명령을 실행하십시오.

    chmod 700 .ssh

    chmod 600 .ssh / authorized_keys

    chown $ USER : $ USER .ssh -R

  2. PuTTY.exe 프로필에서 개인 키 " id_rsa.ppk "를 로드하여 연결 설정을 테스트 한 다음 열기를 클릭합니다 (있는 경우 암호 입력).

여기에 이미지 설명 입력

여기에 이미지 설명 입력


0

키를 확인하세요. 오늘은 rsa (id_rsa.pub) 키 여야하며 더 이상 dss (id_dsa.pub) 키가 아니어야합니다. puttygen 0.70을 사용하고 생성 할 키 유형에서 RSA를 선택하고 호스트 ~ /에서 공개 키를 교체합니다. ssh / authorized_keys


0

키를 추가 한 후 ec2-userAmazon Linux 시스템을 사용하는 것처럼 로그인 합니다.


당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.