Linux环境下实现SSH远程管理
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux环境下实现SSH远程管理相关的知识,希望对你有一定的参考价值。
what 什么是SSH?
SSH(Secure Shell)是一种安全通信协议,主要用来实现字符界面的远程登录、远程复制等功能。OpenSSH是实现SSH协议的开源项目
why 为什么要学习SSH,它与其他远程协议的区别在哪里?
SSH协议对通信双方的数据传输进行了加密处理,其中包括用户登录时输入的用户口令。与早期的TELNET、RSH、PCR远程应用相比,SSH协议提供了更好的安全性。
where SSH适合应用在哪里?
基于C/S架构,适合以部署OpenSSH服务器和客户端,实现远程连接、控制、复制等功能。
how? 如何部署并实现其功能?
一、配置OpenSSH服务端
在RHEL6系统中,OpenSSH服务器由openssh、openssh-server等软件包提供(默认已经安装好),并已将sshd添加为标准的系统服务。
sshd服务的配置文件是/etc/ssh/sshd_config,正确的调整相关配置,可以提高sshd远程登录的安全性。
rpm -q openssh openssh-server //查看这两个软件包是否安装
service sshd status //sshd是openssh的默认系统服务查看是否运行
1,服务监听选项
sshd服务的默认端口号是22,建议更改此端口号并制定监听服务的具体IP地址,以提高安全性。
vim /etc/ssh/sshd_config //默认的配置文件
<文件中的内容>
port 22 //监听的端口
ListenAddress 192.168.100.2 //监听的地址为192.168.100.2
Protocol 2 //使用SSH V2版本,更加安全
.......... //省略部分内容
UseDNS no //禁用dns反向解析,提高处理速度
.......... //省略部分内容
</文件中的内容>
service sshd reload //重新加载服务
2,用户登录控制
sshd服务默认允许root用户登录,不安全。建议先以普通用户远程登录,再以su命令切换root用户。
vim /etc/ssh/sshd_config //默认的配置文件
<文件中的内容>
LoginGraceTime 2m //登录验证时间为2分钟
PermitRootLogin no //禁止root用户登录
MaxAuthTries 6 //最大尝试次数为6
PermitEmptyPasswords no //禁止空密码登录
AllowUsers zhangsan [email protected] //允许哪些用户登录,多个用户使用空格隔开
DenyUsers wangwu [email protected] //拒绝哪些用户不能登录,多个用户使用空格隔开
...... //省略部分内容
</文件中的内容>
service sshd reload //重新加载服务
!! 注意允许和拒绝不能同时使用!!
上述是指允许zhangsan从任何地点登录,admin只能从192.168.100.2进行登录
上述是指拒绝wangwu从任何地方进行登录,lisi仅拒绝从192.168.100.125登录其他地方可以登录
3,登录验证方法
sshd服务支持两种验证方法——密码验证,密钥对验证。当密码、密钥对同时启用时,优先使用密钥对验证。
vim /etc/ssh/sshd_config
<文件中的内容>
PasswordAuthentication yes //启用密码验证
PubkeyAuthentication yes //启用秘钥对验证
AuthorizedKeysFile .ssh/authorized_keys //指定公钥库数据文件位置以及默认的名字
...... //省略部分内容
</文件中的内容>
service sshd reload //重新加载服务
其中,公钥文件用来保存个客户机上传的公钥文本,以便与客户机本地的私钥文件进行匹配验证。之后我们再来讲解如何创建公钥私钥
二,使用SSH客服端程序
在rhel6系统中(centos6)openssh客户端有openssh-client软件包提供(默认已经安装),其中包括ssh远程登录命令,以及scp、sftp远程复制文件和传输的命令。实际上任何支持SSH协议的客户端都可以与openssh服务进行通信,如windows 平台的xsheel secureCRT等图形工具。
1,命令程序 ssh、scp、sftp
(1.1)ssh远程登录
命令格式 : ssh 登录用户@目标主机地址
通过ssh命令可以远程登录sshd服务,为用户提供一个安全的shell环境,以便对服务器进行管理和维护,使用时应指定登录用户,目标主机地址作为参数地址。我们来通过linux客户端以admin用户进行登录到192.168.100.2这台web服务器上进行操作。
使用命令:ssh [email protected]
第一次登录的时候会提示是否接受秘钥输入yes,之后在输入登录用户的密码,接收的秘钥信息将保存到~/.ssh/known_hosts文件中(客户端本地)
之后使用whoami 查看一下当前的登录用户是不是远程服务器的系统用户。
如果监听的端口不是默认的22号端口(如2345)则登录的时候需要指定端口号
使用命令:ssh -p2345 [email protected]
(1.2)scp远程复制
命令格式:
scp 用户名@目标ip:文件位置 本地文件位置 //将远程主机的文件复制到本地
scp 本地文件 用户名@目标ip:文件位置 //将本地文件复制到远程主机
使用命令:scp -p2345 [email protected]:/etc/passwd /root
//通过2345端口,将远程主机的/etc/passwd文件复制到本地
使用命令:scp -P2345 -r /boot/grub/grub.conf [email protected]:/opt
//通过2345端口,将本地/boot/grub/grub.conf复制到远程主机
2,图形工具Xshell
xsheel是一款强大的终端模拟软件支持telnet、ssh、sftp等协议,可方便的管理远程主机。
在www.xsheel.com可以进行下载,下载安装完成之后可以进行管理任务。
下图就是xshell的管理界面,支持部分中文。
本文出自 “新起点” 博客,请务必保留此出处http://yuanshuai.blog.51cto.com/10539781/1749211
以上是关于Linux环境下实现SSH远程管理的主要内容,如果未能解决你的问题,请参考以下文章
无公网IP,SSH远程连接Linux CentOS服务器内网穿透