비밀번호가없는 SSH 로그인을 설정하려면 어떻게해야합니까? ssh를 통해 원격으로 로그인 할 수 있기를

암호를 항상 입력하지 않고도 ssh를 통해 원격으로 로그인 할 수 있기를 원합니다.

  • 어떻게 설정합니까?
  • 암호없는 세션을 실행하려면 다른 명령이 필요합니까?


답변

대답

이 명령을 실행하십시오 :

ssh-keygen

그런 다음 새 키를 서버에 복사해야합니다 .

ssh-copy-id user@host
## or if your server uses custom port no:
ssh-copy-id "user@host -p 1234"

키가 복사 된 후 정상적으로 ssh를 시스템에 ssh하십시오.

ssh user@host

명령을 실행 한 특정 머신에서 비밀번호를 입력하지 않고도 로그인 할 수 있습니다.

not-marco@rinzwind-desktop:~$ ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/home/not-marco/.ssh/id_rsa):
Created directory '/home/not-marco/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/not-marco/.ssh/id_rsa.
Your public key has been saved in /home/not-marco/.ssh/id_rsa.pub.
The key fingerprint is:
b1:25:04:21:1a:38:73:38:3c:e9:e4:5b:81:e9:ac:0f not-marco@rinzwind-desktop
The key's randomart image is:
+--[ RSA 2048]----+
|.o= . oo.        |
|*B.+ . .         |
|*=o .   o .      |
| = .     =       |
|. o     S        |
|E.               |
| o               |
|  .              |
|                 |
+-----------------+

not-marco@rinzwind-desktop:~$ ssh-copy-id not-marco@server
not-marco@server's password:
Now try logging into the machine, with "ssh 'not-marco@server'", and check in:

  ~/.ssh/authorized_keys

to make sure we haven't added extra keys that you weren't expecting.

설명

이것은 이미 SSH를 통해 서버에 성공적으로 연결할 수 있다고 가정합니다.

비밀번호를 사용하지 않고 자신을 식별 할 수있는 SSH 키 쌍을 생성해야합니다. 원하는 경우 암호로 키를 보호하도록 선택할 수 있지만 암호없이 SSH로 액세스 할 수 있도록 비워 둘 수 있습니다.

  1. 먼저 실행하여 SSH 키 쌍을 생성 ssh-keygen만듭니다이 id_rsaid_rsa.pub파일을. pub파일은 서버에 어떤 일이 일어나는지, 개인 키 (인 id_rsa) 당신과 함께 유지하고 자신을 식별하는 방법입니다 것입니다.
  2. 그런 다음 공개 키를 서버에 복사하고 ssh-copy-id user@server사용자를 시스템 DNS 이름 또는 IP 주소를 가진 원격 사용자 및 서버로 바꿉니다. SSH 비밀번호를 입력하라는 메시지가 표시되면 비밀번호를 입력하면 모든 비밀번호가 성공적으로 완료되면 ssh user@server비밀번호없이 기기에 액세스 할 수 있습니다.

참고 문헌


답변

다음 명령을 입력하십시오.

  1. ssh-keygen

    Enter프롬프트가 표시 될 때까지 키를 누릅니다.

  2. ssh-copy-id -i root@ip_address

    (한 번 호스트 시스템의 비밀번호를 요구합니다)

  3. ssh root@ip_address

이제 비밀번호없이 로그인 할 수 있습니다.


답변

내가 보통하는 방법은 다음과 같습니다.

ssh-keygen -t rsa

(암호를 묻는 메시지가 표시되면 비워 두십시오)

그때:
cat ~/.ssh/id_rsa.pub | ssh username@hostname 'cat >> .ssh/authorized_keys'

(이를 위해서는 .ssh 폴더가 대상 호스트 이름의 홈 디렉토리에 있고 권한이 부여 된 키 파일이 있어야합니다)

물론, username을 원하는 username으로 바꾸고 hostname을 원하는 호스트 이름 또는 IP 주소로 바꾸십시오.

그 후에는 익숙한 것처럼 해당 상자에 SSH로 연결하십시오.


답변

나는 보통 sshpass그것을 sudo apt-get install sshpass위해 사용하고 설치하고 다음과 같이 사용합니다

sshpass -p 'password' ssh your_username@your_server


답변

비밀번호 인증 비활성화

SSH 서버를 가진 많은 사람들이 약한 암호를 사용하기 때문에 많은 온라인 공격자가 SSH 서버를 찾은 다음 임의로 암호를 추측하기 시작합니다. 공격자는 한 시간에 수천 개의 암호를 시도 할 수 있으며 충분한 시간이 주어지면 가장 강력한 암호도 추측 할 수 있습니다. 권장되는 솔루션은 비밀번호 대신 SSH 키를 사용하는 것입니다. 일반적인 SSH 키처럼 추측하기 어려운 암호는 634 개의 임의의 문자와 숫자를 포함해야합니다. SSH 키를 사용하여 컴퓨터에 항상 로그인 할 수 있으면 암호 인증을 완전히 비활성화해야합니다.

비밀번호 인증을 비활성화하면 특별히 승인 한 컴퓨터에서만 연결할 수 있습니다. 이렇게하면 보안이 크게 향상되지만 PC를 사전 승인하지 않고 친구의 PC 또는 실수로 키를 삭제할 때 자신의 랩톱에서 자신의 컴퓨터에 연결할 수 없습니다.

특별한 이유가없는 한 비밀번호 인증을 비활성화하는 것이 좋습니다.

비밀번호 인증을 비활성화하려면 sshd_config 파일에서 다음 줄을 찾으십시오.

#PasswordAuthentication yes

다음과 같은 줄로 바꾸십시오.

PasswordAuthentication no

파일을 저장하고 SSH 서버를 다시 시작한 후에는 로그인 할 때 비밀번호를 묻지 않아도됩니다.

https://help.ubuntu.com/community/SSH/OpenSSH/Configuring#disable-password-authentication


답변

이 솔루션은 특히 Windows 를 사용하는 사용자 가 AWS 클라우드GCE 클라우드의 클라우드 이미지를 포함하여 원격 시스템 에 ssh 할 수 있도록합니다.

기권

최근이 솔루션을 사용하여 GCE에 새로 배포 된 vm 이미지를 원격 로그인했습니다.


사용되는 도구 :

  1. puttygen 퍼티 겐 다운로드
  2. winscp winscp 다운로드

수행 단계 :

  1. puttygen을 사용하여 공개 / 개인 키 쌍을 생성하십시오.
  2. 클라우드 또는 원격 위치에서 서버에 공개 키를 업로드하십시오.

그것을하는 방법 :

1. 키 / 페어 생성 또는 기존 개인 키 사용

개인 키를 소유 한 경우 :

를 열고 puttygen로드 버튼을 누른 다음 개인 키 ( *.pem) 파일을 선택하십시오 .


개인 키를 소유하지 않은 경우 :

  • 열기 puttygen,
  • 매개 변수 섹션 에서 원하는 키 유형 SSH2 DSA (RSA 또는 DSA를 사용할 수 있음)를 선택 하십시오. 암호 문구 필드를 비워 두는 것이 중요합니다.
  • generate지침을 누르고 (공개 / 개인) 키 페어를 생성합니다.

샘플 키 생성 그림

(소스 1에서 아래 링크 참조)

2. (와 새로운 ‘authorized_keys에’파일을 만듭니다 notepad)

PuTTY 키 생성기의 “OpenSSH authorized_keys 파일에 붙여 넣기위한 공개 키”섹션에서 공개 키 데이터를 복사하고 키 데이터를 authorized_keys파일에 붙여 넣으십시오 .


이 파일에는 한 줄의 텍스트 만 있어야합니다.


3. Linux 서버에 키를 업로드

  • WinSCP를 엽니 다.
  • SFTP 파일 프로토콜을 선택하고 ssh 자격 증명으로 로그인하십시오.
  • 성공하면 원격 시스템에 홈 디렉토리 구조가 나타납니다.

authorized_keys 파일을 원격 시스템의 홈 디렉토리에 업로드하십시오.


4. 적절한 권한 설정

.ssh디렉토리 만들기 (없는 경우)


authorized_keys파일을 .ssh디렉토리로 복사 하십시오 .
(이것은 존재하는 모든 authorized_keys파일 을 대체합니다 .이 점에 유의하십시오).

파일이 존재하면이 파일의 내용을 기존 파일에 추가하십시오.


권한을 설정하는 명령을 실행하십시오.

sudo chmod 700 .ssh && chmod 600 .ssh/authorized_keys

이제 ssh매번 자격 증명을 입력하지 않고도 원격 컴퓨터에 접속할 수 있습니다 .

더 읽을 거리 :


답변

공개 / 프라이빗 키 쌍을 생성하고 새로 생성 된 공개 키를 사용하여 로그인하는 경우 비밀번호를 입력 할 필요가 없습니다. 키 링 및 / 또는 ssh 에이전트의 구성에 따라 암호로 키를 보호해야 할 수도 있습니다.

여기 당신을위한 많은 짧은 하우투 중 하나가 있습니다. 생성 된 개인 키를 개인용으로 유지하는 것이이 방법의 안전에 매우 중요합니다! 다른 사람과 공유하거나 용량에 관계없이 액세스해서는 안됩니다.

이 명령은 다음과 같이 상당히 강력한 키를 생성합니다 ~/.ssh/.

ssh-keygen -b 4096

에서 ~/.ssh/당신과 같은 공개 키를 찾을 수 있습니다 id_rsa.pub. authorized_keys전송 가능한 매체 (펜 드라이브)를 통해 전송하거나 서버에서 비밀번호 인증을 잠시 사용 가능하게 한 후 사용 ssh-copy-id ~/.ssh/id_rsa.pub username@server하고 다시 사용 불가능하게 하여 해당 내용을 서버 파일에 추가해야 합니다.

암호를 사용하여 키를 보호하기로 선택한 경우 (첫 번째 단계에서) ssh-agent또는 Ubuntu 키링을 사용하여 해당 pharse를 로컬로 보호 할 수 있으므로 항상 입력하지 않아도됩니다.