Tengo dos servidores Ambos servidores están en CentOS 5.6. Quiero SSH del Servidor 1 al Servidor 2 usando una clave privada que tengo (OpenSSH SSH-2 Private Key).
No sé cómo hacerlo sobre Unix. Pero lo que hice en Windows usando Putty fue alimentar mi clave privada OpenSSH a putty-gen y generar una clave privada en formato PPK.
Sin embargo, estaría creando un script bash desde el servidor 1 que ejecutará algunos comandos en el servidor 2 a través de SSH.
¿Cómo hago SSH al servidor 2 usando mi archivo de clave privada del servidor 1?
ssh-copy-id user@machine
Respuestas:
Necesita su clave pública SSH y necesitará su clave privada ssh. Las claves se pueden generar con
ssh_keygen
. La clave privada debe mantenerse en el Servidor 1 y la clave pública debe almacenarse en el Servidor 2.Esto se describe completamente en la página de manual de openssh, por lo que citaré mucho. Debería leer la sección 'Autenticación'. También el manual de openSSH debería ser realmente útil: http://www.openssh.org/manual.html
Tenga cuidado con ssh porque esto afecta la seguridad de su servidor.
De
man ssh
:Esto significa que puede almacenar su clave privada en su directorio de inicio en .ssh. Otra posibilidad es decirle a ssh mediante el
-i
cambio de parámetro que use un archivo de identidad especial. También deman ssh
:Esto es para la clave privada. Ahora debe introducir su clave pública en el Servidor 2. Nuevamente, una cita de
man ssh
:La forma más fácil de lograr eso es copiar el archivo al Servidor 2 y agregarlo al archivo autorizado_claves:
Se debe permitir la autorización mediante clave pública para el demonio ssh, ver
man ssh_config
. Por lo general, esto se puede hacer agregando la siguiente declaración al archivo de configuración:fuente
ssh -i keyfile
¡Gracias!ssh-copy-id
:ssh-copy-id -i ~/.ssh/foo.id_rsa remote.example.com
.ssh-add
después de crear una clave en la computadora desde la que se está conectando. eso es lo que causa dolor de cabeza a la mayoría de las personas.$ ssh -i ~/.ssh/id_rsa [email protected]
, obtengo el error.[email protected]: Permission denied (publickey).
Tengo la clave creada, agregada localmentessh-add
y agregada como clave autorizada en el servidor remoto.Usé ssh con la opción -i para agregar su clave aquí.
Si desea pasar arg1, arg2 con el archivo .sh, simplemente páselo después del archivo .sh y use un espacio de uso para separarlo.
ssh -i home/avr/new.pem [email protected] "/var/www/beta/betatolive.sh mmin 30"
fuente
chmod 600 home/avr/new.pem
Lo primero que deberá hacer es asegurarse de haber ejecutado el comando keygen para generar las claves:
Luego use este comando para empujar la llave al servidor remoto, modificándola para que coincida con el nombre de su servidor.
fuente
ssh-copy-id user@hostname
lugarAgregue la clave pública (
id_[rd]sa.pub
) para su máquina de origen (desde donde está enviando ssh) al~/.ssh/authorized_keys
archivo del servidor de destino para el nombre de usuario en el que desea ssh. Si ha perdido la clave pública, querrá crear una nueva conssh-keygen
. Usar los argumentos predeterminados para eso debería estar bien para la mayoría de los propósitos. Si necesita instrucciones más detalladas, hay miles de tutoriales que puede buscar en Google.fuente
Úselo
ssh-copy-id
en el Servidor 1, suponiendo que tenga el par de claves (generado conssh-keygen
):Ahora debería poder ssh en el Servidor 2 con ssh usando la clave privada
De hecho, si verifica
cat ~/.ssh/authorized_keys
en el Servidor 2, verá que la clave pública se adjunta para usted.fuente