目录
编辑
一、SSH服务基础知识
1、ssh服务介绍
2、ssh服务的配置文件路径
3、查看ssh服务的运行状态
二、SSH服务常用命令 - ssh
1、 SSH服务器 启动/关闭/重启
2、SSH远程连接语法
3、利用ssh协议传输文件和获取文件
4、SSH服务免密登陆
一、SSH服务基础知识
1、ssh服务介绍
1、SSH(Secure Shell)是一种安全通道协议,主要用来实现字符界面的远程登录、远程 复制等功能;
2、SSH 协议对通信双方的数据传输进行了加密处理,其中包括用户登录时输入的用户口令;
3、SSH 为建立在应用层和传输层基础上的安全协议。对数据进行压缩,加快传输速度。 4、和ssh一样的通信协议还有telnet(端口号23),和ssh不一样的是ssh是密文传输数据,而telnet则是明文传输,所以相对而言ssh的安全性更高一点
5、SSH服务优点:对通信数据进行加密处理,包括登录名称和登陆的密码,所以安全性很高
2、ssh服务的配置文件路径
SSH服务配置文件路径:/etc/ssh/sshd_config
首先我们先切换到配置文件路径下,查看一下配置文件
cd /etc/ssh
查看配置文件
vim sshd_config
下面是一些常用的参数:
注意监听地址0.0.0.0表示所有地址都可以监听
- #Port 22 #登陆端口
- #LoginGraceTime 2m #登录验证时间为两分钟
- #PermitRootLogin yes #允许root用户登录(安全考虑,这里可以设置为no,禁止root用户登录)
- #MaxAuthTries 6 #最大重试的次数为6
- PasswordAuthentication yes #允许空密码用户登录
- UseDNS no #禁止DNS反向解析,提高服务器的响应速度
3、查看ssh服务的运行状态
systemctl status sshd.service
可以看到ssh服务正在运行中
二、SSH服务常用命令 - ssh
1、 SSH服务器 启动/关闭/重启
ssh服务的关闭
systemctl stop sshd.service
ssh服务的启动
systemctl strart sshd.service
ssh服务的重启
systemctl restart sshd.service
2、SSH远程连接语法
ssh [远程主机用户名]@[远程服务器主机名或IP地址] [-p port] # SSH使用语法
注意:如果没有指定-p参数,则默认ssh端口为22,22端口是高危端口
3、利用ssh协议传输文件和获取文件
#下行复制,将远程主机中的etc/passwd文件复制到本机
scp root@xxxx:/etc/passwd /root/passwd10.txt
#上行复制,将本机的etc/ssh复制到远程主机,因为是复制目录所以要-r
scp -r /etc/ssh root@xxxx:/opt
常用可选参数:
- -B 使用批处理模式(传输过程中不询问传输口令或短语)
- -C 允许压缩。(将-C标志传递给ssh,从而打开压缩功能)
- -p 保留原文件的修改时间,访问时间和访问权限。
- -r 递归复制整个目录。
- -P port 注意是大写的P, port是指定数据传输用到的端口号
4、SSH服务免密登陆
免密登陆原理: 基于公钥加密技术实现。在Linux中每一个用户都有一对公钥和私钥,公钥可以自由传输给其他主机,私钥则需要妥善保管。
公钥:id_rsa.pub 私钥:id_rsa
SSH服务免密登录可以使得用户从本地直接登录远程SSH服务器上,而无需每次都输入密码。这大大方便了用户的操作。
SSH免密登录配置:
1、生成公钥和私钥
在本地机器上使用ssh-keygen命令生成公钥和私钥,将公钥存放在远程主机的~/.ssh/authorized_keys文件中
ssh-keygen -t rsa
中间直接回车默认下来就行
2、将公钥复制到远程服务器
将本地机器生成的公钥复制到远程服务器的~/.ssh目录下,并将公钥重命名为authorized_keys
ssh-copy-id -i ~/.ssh/id_rsa.pub 远程注意用户名@远程主机ip
样例: ssh-copy-id -i ~/.ssh/id_rsa.pub root@192.168.229.141
3、配置远程服务器的sshd_config
在远程服务器的sshd_config文件中进行如下设置:
PubkeyAuthentication yes AuthorizedKeysFile .ssh/authorized_keys PasswordAuthentication no
4、重启sshd服务
systemctl restart sshd
到此就完成了免密登录配置。
可以执行以下命令进行测试:
ssh 远程主机用户名@远程主机ip
OK,大功告成