前言
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-一个致力于分享世界上最好的语言的网站