it-swarm-eu.dev

Jak ssh na vzdálený server pomocí soukromého klíče?

Mám dva servery. Oba servery jsou v CentOS 5.6. Chci SSH ze serveru 1 na server 2 pomocí soukromého klíče, který mám (soukromý klíč OpenSSH SSH-2).

Nevím, jak to udělat na unixu. Co jsem ale dělal na Windows pomocí PuTTY, bylo vložit můj soukromý klíč OpenSSH do PuTTY-gen a vygenerovat soukromý klíč ve formátu PPK.

Ze serveru 1 bych však vytvořil bash skript, který provede některé příkazy na serveru 2 prostřednictvím SSH.

Jak mohu SSH na server 2 pomocí svého souboru soukromého klíče ze serveru 1?

82
Aivan Monceller

Potřebujete veřejný klíč SSH a soukromý klíč ssh. Klíče lze vygenerovat pomocí ssh-keygen. Soukromý klíč musí být uložen na serveru 1 a veřejný klíč musí být uložen na serveru 2.

Toto je kompletně popsáno v manuálu stránky openssh, takže toho budu hodně citovat. Měli byste si přečíst sekci 'Ověřování'. Také příručka openSSH by měla být opravdu užitečná: http://www.openssh.org/manual.html

Prosím buďte opatrní s ssh, protože to má vliv na zabezpečení vašeho serveru.

Od 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.

To znamená, že můžete svůj soukromý klíč uložit do svého domovského adresáře ve formátu .ssh. Další možností je říct ssh pomocí přepínače parametrů -i, Aby používal speciální identifikační soubor. Také od 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).

Toto je pro soukromý klíč. Nyní musíte na Server 2 představit svůj veřejný klíč. Znovu nabídku z 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.

Nejjednodušší způsob, jak dosáhnout, je zkopírovat soubor na server 2 a připojit jej k souboru autorizované_keys:

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

Pro ssh démona musí být povolena autorizace pomocí veřejného klíče, viz man ssh_config. Obvykle to lze provést přidáním následujícího příkazu do konfiguračního souboru:

PubkeyAuthentication yes
70
echox

Použil jsem ssh s -i možnost přidat váš klíč zde.

Pokud chcete předat arg1, arg2 se souborem .sh, předejte jej za soubor .sh a oddělte jej pomocí mezer.

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

25
Avinash Raut

První věc, kterou musíte udělat, je ujistit se, že jste spustili příkaz keygen pro vygenerování klíčů:

ssh-keygen -t rsa

Potom pomocí tohoto příkazu posuňte klíč na vzdálený server a upravte jej tak, aby odpovídal názvu vašeho serveru.

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

Připojte veřejný klíč (id_[rd]sa.pub) pro váš zdrojový stroj (odkud sshing) do ~/.ssh/authorized_keys soubor cílového serveru pro uživatelské jméno, do kterého chcete ssh. Pokud jste ztratili veřejný klíč, budete chtít vytvořit nový klíč s ssh-keygen. Použití výchozích argumentů by mělo být pro většinu účelů v pořádku. Pokud potřebujete podrobnější pokyny, existují tisíce výukových programů, které můžete google.

8
Kevin

ssh-copy-id - použijte lokálně dostupné klíče k autorizaci přihlášení na vzdáleném počítači

Použijte ssh-copy-id na serveru 1, za předpokladu, že máte pár klíčů (vygenerovaný pomocí ssh-keygen):

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

Nyní byste měli mít možnost ssh na server 2 pomocí ssh pomocí soukromého klíče

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

Opravdu, pokud zaškrtnete cat ~/.ssh/authorized_keys na serveru 2 uvidíte veřejný klíč, který je k vám připojen.

6
Sida Zhou