Windows의 Putty에서 Linux의 OpenSSH로 통신하는 방법은 무엇입니까?

Windows의 Putty에서 Linux의 OpenSSH로 통신하는 방법은 무엇입니까?

Putty가 OpenSSH와 통신하도록 하는 과정은 오랫동안 저를 괴롭혔습니다.

OpenSSH를 설치했습니다.

sudo apt-get install openssh

그런 다음 다음 명령을 사용하여 SSH 키를 생성했습니다.

ssh-keygen -t rsa -b 4096 -C "my user here"

위 명령은 공개 키와 개인 키 조합을 내 사용자 프로필 홈 디렉터리 .ssh( )로 이동합니다. ( 이 작업을 수행 하려면 거기에 폴더를 만들어야 /home/myUser/.ssh할 수도 있습니다 .).sshssh-keygen

그런 다음 개인 키를 Windows에 복사하고 Putty에서 사용해 보았습니다. 웨이터는 나를 계속 거부했다.

답변1

OpenSSH를 설치했습니다.

sudo apt-get install openssh

서버는 패키지 ssh에 있습니다 . openssh-server따라서 서버가 설치되어 있지 않고 서버에 연결되어 있지 않거나 이전에 설치되어 있습니다.

위 명령은 공개 및 개인 키 조합을 내 사용자 프로필 홈 .ssh 디렉터리(/home/myUser/.ssh)로 이동합니다. (ssh-keygen이 제대로 작동하려면 거기에 .ssh 폴더를 만들어야 할 수도 있습니다.)

서버에서 키를 생성합니다. 그러나 키를 "승인"하려면 id_rsa.pub~/.ssh/authorized_keys`에 복사해야 합니다 .

그런 다음 개인 키를 Windows에 복사하고 Putty에서 사용해 보았습니다. 웨이터는 나를 계속 거부했다.

PuTTY는 OpenSSH 형식 개인 키를 이해하지 못합니다. PuTTY 형식으로 변환하려면 PuTTYgen을 사용해야 합니다.

또한 개인 키를 이동하는 것은 나쁜 습관으로 간주됩니다. 어쨌든, PuTTYgen을 사용할 때 클라이언트 시스템에서 키를 생성하고 공개 키를 서버에 복사합니다(분명히 이를 openssh 형식으로 변환해야 합니다:https://stackoverflow.com/a/10015651/15359441).

답변2

다음은 문제를 해결하기 위해 사용한 단계입니다(이 문제를 파악하는 데 이틀이 걸렸기 때문에 내 질문에 답하고 있습니다).

  1. Windows 방화벽으로 이동하여 포트 22 인바운드/아웃바운드에 대한 허용 규칙을 추가하세요.

  2. Linux IPTABLES에 포트 22 인바운드/아웃바운드 허용 규칙을 추가했는지 확인하세요.

  3. Linux의 /home/myUser/.ssh 폴더에서 공개 키 파일(.pub 파일 확장자를 가진 파일)의 내용을authorized_keys라는 파일에 복사합니다(디렉토리를 생성할 때와 마찬가지로 생성해야 합니다). "/home/myUser/.ssh"(여기서 "myUser"는 사용자 이름임)

  4. 개인 키를 Windows 상자(클라이언트, 퍼티 설치)에 복사합니다.

  5. Windows의 Putty 설치 디렉터리(일반적으로 c:\Program Files\Putty)로 이동하여 puttygen.exe를 실행합니다. "변환" 탭으로 이동하여 Linux에서 복사한 공개 키를 가져옵니다. 저장합니다(Putty의 키 형식인 .ppk 파일로 저장됩니다).

  6. 연결되면 퍼티 왼쪽에서 "SSH"로 이동한 다음 "Auth"로 이동합니다. "Auth"에서 방금 .ppk 형식으로 저장한 개인 키를 로드합니다. 그런 다음 연결하십시오. 사용자/비밀번호를 묻는 메시지가 나타나면 둘 다 Enter를 누르십시오. 연결되어 있어야 하며 환영 메시지를 확인해야 합니다.

관련 정보