암호를 항상 입력하지 않고도 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로 액세스 할 수 있도록 비워 둘 수 있습니다.
- 먼저 실행하여 SSH 키 쌍을 생성
ssh-keygen
만듭니다이id_rsa
와id_rsa.pub
파일을.pub
파일은 서버에 어떤 일이 일어나는지, 개인 키 (인id_rsa
) 당신과 함께 유지하고 자신을 식별하는 방법입니다 것입니다. - 그런 다음 공개 키를 서버에 복사하고
ssh-copy-id user@server
사용자를 시스템 DNS 이름 또는 IP 주소를 가진 원격 사용자 및 서버로 바꿉니다. SSH 비밀번호를 입력하라는 메시지가 표시되면 비밀번호를 입력하면 모든 비밀번호가 성공적으로 완료되면ssh user@server
비밀번호없이 기기에 액세스 할 수 있습니다.
참고 문헌
답변
다음 명령을 입력하십시오.
-
ssh-keygen
Enter프롬프트가 표시 될 때까지 키를 누릅니다.
-
ssh-copy-id -i root@ip_address
(한 번 호스트 시스템의 비밀번호를 요구합니다)
-
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 이미지를 원격 로그인했습니다.
사용되는 도구 :
puttygen
퍼티 겐 다운로드winscp
winscp 다운로드
수행 단계 :
- puttygen을 사용하여 공개 / 개인 키 쌍을 생성하십시오.
- 클라우드 또는 원격 위치에서 서버에 공개 키를 업로드하십시오.
그것을하는 방법 :
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를 로컬로 보호 할 수 있으므로 항상 입력하지 않아도됩니다.