개인 키를 사용하여 원격 서버에 ssh하는 방법? 두 서버 모두 CentOS 5.6에 있습니다. 내가

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

유닉스를 통해 어떻게하는지 모르겠습니다. 그러나 Putty를 사용하여 창에서 한 일은 PutS-gen에 OpenSSH 개인 키를 공급하고 PPK 형식의 개인 키를 생성하는 것이 었습니다.

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

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



답변

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 user@host:
ssh user@host
host$ cat id_dsa.pub >> ~/.ssh/authorized_keys

공개 키를 통해 인증은 ssh를 데몬에 허용해야 참조 man ssh_config. 일반적으로 이것은 구성 파일에 다음 명령문을 추가하여 수행 할 수 있습니다.

PubkeyAuthentication yes


답변

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

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

ssh -i home/avr/new.pem ar@231.221.54.8 "/var/www/beta/betatolive.sh mmin 30"


답변

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

ssh-keygen -t rsa

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

cat ~/.ssh/id_rsa.pub | ssh user@hostname 'cat >> .ssh/authorized_keys'


답변

ssh하려는 id_[rd]sa.pub소스 시스템 의 공개 키 ( ) ~/.ssh/authorized_keys를 ssh하려는 사용자 이름의 대상 서버 파일에 추가하십시오. 공개 키를 분실 한 경우을 사용하여 공개 키를 새로 만들고 싶을 것입니다 ssh-keygen. 대부분의 경우 기본 인수를 사용하는 것이 좋습니다. 더 자세한 지침이 필요한 경우 Google에 제공 할 수있는 수천 가지 자습서가 있습니다.


답변

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

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

ssh-copy-id -i ~/.ssh/id_rsa user@server2_hostname

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

ssh -i ~/.ssh/id_rsa user@server2_hostname

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


답변