您的位置:首页 > 运维架构 > Linux

Linux SSH远程登录快速配置

2015-11-23 03:27 459 查看

SSH远程登录

最近使用到了云服务器,经常需要登陆远程服务器进行大量操作。远程登录服务器一般使用ssh协议。常用的登陆方式有两种:

1.账号+密码手动验证

$ssh user@192.168.1.1
$password:


2.公钥+私钥对自动验证(免密登录)

$ssh user@192.168.1.1


免密登录配置

两种登陆方式对比下来第二种方式更为方便且有些程序例如hadoop要求我们配置免密登录。

原理

利用公钥密码算法的安全特性,即:使用A的私钥加密的内容能由A的多个公钥解开而使用A的公钥加密的内容只能由A的私钥解开。通信双方分别使用公钥、私钥进行数据加密解密与身份认证。私钥唯一,由拥有者秘密保存,非公开。公钥公开,每个人都能获取。

在ssh登录的应用中,由ssh客户端生成私钥/公钥对,并将公钥发送到ssh服务端用来实现身份证。

配置

1.生成密钥对并使用私钥

#生成rsa公钥/私钥对,保存到用户根目录下.ssh文件夹下的id_rsa,passphrase为空。
$ ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
#使私钥生效
$ ssh-add id_rsa


命令会自动生成名为
id_rsa
的私钥文件和
id_rsa.pub
的公钥文件并储存在
~/.ssh
目录下(ssh密钥文件的默认存储目录,当不存在时可手动创建,注意权限问题)。生成成功后令系统使用该私钥。

2.将公钥上传到服务器并添加到信任列表

#将客户端生成的公钥文件上传到远程服务器的用户根目录下
$scp ~/.ssh/id_rsa.pub username@192.168.1.1:~/
#使用账号密码验证方式登录服务器后,将公钥文件添加到信任域
$cat ~/.id_rsa.pub >> ~/.ssh/authorized_keys


操作完成后,密钥对的配置就完成了,但是在测试之前要检查下服务端的ssh配置是否正确。

#查看ssh服务的配置文件
$vim /etc/ssh/sshd_config
#确保以下3项配置未被注释并配置正确
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile %h/.ssh/authorized_keys


最后重启服务端的ssh服务

$sudo service ssh restart


现在,我们在客户端使用ssh指令登录时将自动完成验证。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  远程登录 linux ssh