使用SSH-Keygen免密登录远端服务器

来源:互联网 发布:rtsp端口是什么 编辑:程序博客网 时间:2024/06/03 21:42

前言

SSH是一个开源最值得信息的网络协议,它一般用于登录远端服务器来执行命令和程序。它还用于通过网络使用安全副本(SCP)协议将文件从一台计算机传送到另外一台计算机上。

在本文中,我们将向您展示如何使用ssh密钥连接到远程Linux服务器,而不输入密码。使用带有SSH密钥的无密码登录将增加两个Linux服务器之间的信任,以方便文件同步或传输。

如果您正在处理的很多Linux远程服务器,那么SSH无密码登录是自动化任务的最佳方法之一,例如使用脚本自动备份,使用scp和远程命令执行来同步文件。

在这个例子中我们将从192.168.0.12(本地)服务器免密自动登录到192.168.0.11(远端)服务器。

具体操作

Step 1:在192.168.0.12(本地)服务器创建授权SSH-Kegen密钥

首先登录192.168.0.12(本地)服务器生成一对公钥和私钥,具体命令如下:

$cd ~/.ssh$ssh-keygen -t rsa

如果您的家目录没有.ssh目录请如下命令进行创建:

$mkdir .ssh

连续敲三次回车后生成完毕,可以使用ls命令查看,其中id_rsa文件为私钥,id_rsa.pub文件为公钥;

Step 2:在192.168.0.11(远端)服务器上创建.ssh目录

如果您的服务器上已经存在此目录请忽略此操作;

$ssh username@192.168.0.11 mkdir -p .ssh

这是一种偷懒的方式,当然您也可以登录到远端服务器直接进行创建。

Step 3: 上传生成的Public Keys到192.168.0.11(远端)服务器

$cat .ssh/id_rsa.pub | ssh username@192.168.0.11 ‘cat >> .ssh/authorized_keys’

此处我们直接将公钥的内容直接写入到远端服务器.ssh目录下authorized_keys文件中,若没有此文件请创建;如果您不习惯以上命令您也可以使用scp命令将公钥上传到远端服务器上;

Step 4:在192.168.0.11(远端)服务器上设置.ssh目录的权限

$ssh username@192.168.0.11 “chmod 700 .ssh; chmod 640 .ssh/authorized_keys”

Step 5:从192.168.0.12(本地)服务器免密登录到192.168.0.11(远端)服务器

完成以上操作后您就可以从本地服务器免密登录到远端服务器啦!!!

$ssh username@192.168.0.11

 更多文章请移驾到双哥PHP-一个致力于分享世界上最好的语言的网站

原创粉丝点击