it-swarm.dev

개인 키를 사용하여 원격 서버에 ssh하는 방법?

두 대의 서버가 있습니다. 두 서버 모두 CentOS 5.6에 있습니다. 내가 가지고있는 개인 키 (OpenSSH SSH-2 개인 키)를 사용하여 서버 1에서 서버 2로 SSH하고 싶습니다.

나는 유닉스를 통해 그것을하는 방법을 모른다. 그러나 PuTTY를 사용하여 Windows에서 한 일은 OpenSSH 개인 키를 PuTTY-gen에 공급하고 PPK 형식의 개인 키를 생성하는 것이 었습니다.

그러나 서버 1에서 SSH를 통해 일부 명령을 실행하는 bash 스크립트를 작성합니다.

서버 1의 개인 키 파일을 사용하여 서버 2에 SSH하려면 어떻게해야합니까?

82
Aivan Monceller

SSH 공개 키가 필요하며 ssh 개인 키가 필요합니다. 키는 ssh-keygen로 생성 할 수 있습니다. 개인 키는 서버 1에 유지되어야하고 공개 키는 서버 2에 저장해야합니다.

이것은 openssh 맨 페이지에 완전히 설명되어 있으므로 많은 것을 인용하겠습니다. '인증'섹션을 읽어야합니다. 또한 openSSH 매뉴얼이 도움이 될 것입니다 : http://www.openssh.org/manual.html

Ssh는 서버의 보안에 영향을주기 때문에주의하십시오.

man ssh에서 :

 ~/.ssh/identity
 ~/.ssh/id_dsa
 ~/.ssh/id_rsa
     Contains the private key for authentication.  These files contain
     sensitive data and should be readable by the user but not acces-
     sible by others (read/write/execute).  ssh will simply ignore a
     private key file if it is accessible by others.  It is possible
     to specify a passphrase when generating the key which will be
     used to encrypt the sensitive part of this file using 3DES.

 ~/.ssh/identity.pub
 ~/.ssh/id_dsa.pub
 ~/.ssh/id_rsa.pub
     Contains the public key for authentication.  These files are not
     sensitive and can (but need not) be readable by anyone.

즉, 개인 키를 .ssh의 홈 디렉토리에 저장할 수 있습니다. 또 다른 가능성은 -i 매개 변수 스위치를 통해 ssh에 특수 ID 파일을 사용하도록 알리는 것입니다. 또한 man ssh에서 :

 -i identity_file
     Selects a file from which the identity (private key) for RSA or
     DSA authentication is read.  The default is ~/.ssh/identity for
     protocol version 1, and ~/.ssh/id_rsa and ~/.ssh/id_dsa for pro-
     tocol version 2.  Identity files may also be specified on a per-
     Host basis in the configuration file.  It is possible to have
     multiple -i options (and multiple identities specified in config-
     uration files).

개인 키용입니다. 이제 서버 2에 공개 키를 소개해야합니다. 다시 man ssh에서 인용하십시오.

  ~/.ssh/authorized_keys
         Lists the public keys (RSA/DSA) that can be used for logging in
         as this user.  The format of this file is described in the
         sshd(8) manual page.  This file is not highly sensitive, but the
         recommended permissions are read/write for the user, and not
         accessible by others.

이를 달성하는 가장 쉬운 방법은 파일을 서버 2에 복사하고 authorized_keys 파일에 추가하는 것입니다.

scp -p your_pub_key.pub [email protected]:
ssh [email protected]
host$ cat id_dsa.pub >> ~/.ssh/authorized_keys

Ssh 데몬에는 공개 키를 통한 권한 부여가 허용되어야합니다 (man ssh_config 참조). 일반적으로 이는 구성 파일에 다음 명령문을 추가하여 수행 할 수 있습니다.

PubkeyAuthentication yes
70
echox

Ssh를 -i 옵션과 함께 사용하여 키를 여기에 추가했습니다.

Arg1, arg2를 .sh 파일과 함께 전달하려면 .sh 파일 뒤에 전달하고 사용 공간을 사용하여 구분하십시오.

ssh -i home/avr/new.pem [email protected] "/var/www/beta/betatolive.sh mmin 30"

25
Avinash Raut

가장 먼저해야 할 일은 keygen 명령을 실행하여 키를 생성하는 것입니다.

ssh-keygen -t rsa

그런 다음이 명령을 사용하여 키를 원격 서버로 푸시하고 서버 이름과 일치하도록 수정하십시오.

cat ~/.ssh/id_rsa.pub | ssh [email protected] 'cat >> .ssh/authorized_keys'
18
Anubhav Singh

공개 키 추가 (id_[rd]sa.pub) 소스 머신 (Sshing중인 곳)을 ~/.ssh/authorized_keys ssh하려는 사용자 이름의 대상 서버 파일입니다. 공개 키를 잃어버린 경우 ssh-keygen. 대부분의 경우 기본 인수를 사용하는 것이 좋습니다. 더 자세한 지침이 필요한 경우 Google에 제공 할 수있는 수천 가지 자습서가 있습니다.

8
Kevin

ssh-copy-id-로컬에서 사용 가능한 키를 사용하여 원격 시스템의 로그인 권한 부여

키 쌍 (ssh-copy-id로 생성됨)이 있다고 가정하면 서버 1에서 ssh-keygen를 사용하십시오.

ssh-copy-id -i ~/.ssh/id_rsa [email protected]_hostname

이제 개인 키를 사용하여 ssh를 사용하여 서버 2로 ssh 할 수 있어야합니다.

ssh -i ~/.ssh/id_rsa [email protected]_hostname

실제로 서버 2에서 cat ~/.ssh/authorized_keys를 확인하면 공개 키가 추가 된 것을 볼 수 있습니다.

6
Sida Zhou