linux_ssh
什么是ssh?
配置文件位置:/etc/ssh/sshd_config
远程登录和为其他网络提供安全的加密数据传输协议,默认端口22,默认协议是SSH2
# 远程终端通过ssh连接服务器管理服务器
# 端口是某个主机提供服务的入口
提供服务:
- 类似telnet远程联机
- 类似ftp服务的ftp-server的sftp
- 利用ssh协议来实现加密传输数据,如scp远程拷贝
无法通过ssh连接远程主机故障排除?
no route to host
# 可能防火墙阻挡,检查防火墙配置是否开放这个端口,是否开放这个ip? Connection refused
# 检查对应的端口是否开启 # netstat -lntup | grep ssh # 检查是否ssh配置文件禁止远程root用户登录 # grep "PermitRootLogin" /etc/ssh/sshd_config # 检查物理网络 # 先ping ip,然后再 telnet ip port
ssh认证类型有哪几类?
1. 口令
向服务器发送建立连接请求,服务会返回768bit的公钥,客户端也会生成256bit的私钥,客户端再次请求的时候会把这两个组成1024bit的密钥本地保存一份并且发给服务器保存,然后每次对话,都对比双方的密钥,建立安全通信通道
2. 密钥
建立密钥对,把共用钥匙放在需要访问的目标服务器上,把私钥放到ssh的客户端或对应的客户端服务器上
ssh相关优化?
/etc/ssh/sshd_conf
1. Port # 更改端口,默认端口22大家都知道
2. ListenAddress # 监听主机指定的ip地址,多个ip地址时,默认全部监听
3. PermitRootLogin # 不允许root用户远程登录,去掉注释,让其生效,参数yes
4. UseDNS # 反向解析,yes改为no
5. PermitEmptyPasswords # 不允许密码为空登录,去除注释,让其生效
6. GSSAPIAuthentication
# GSS API认证,防止客户端欺诈手段,ssh连接慢的原因,yes改为no
7. GSSAPICleanupCredentials yes
# GSS API清理凭证,去除注释,让其生效,参数yes
# 这些ssh优化,应该放在系统初始化就需要做完
如何远程连接?
- window远程连接终端,如x-shell等工具
- linux中ssh服务就带ssh终端
ssh -p port username@host_ip 如: ssh -p 22 root@172.16.1.8 # 通过 ssh终端连接远端主机172.16.1.8,以root身份端口22请求服务 # 将会提示是否保存口令密码对,保存会保存在当前用户家目录下~/.ssh/known_hosts
ssh登录安全策略
- 禁止远程root登录
- 尽量使用密钥登录,而不是口令登录
- 防火墙封闭ssh,对客户端源ip进行限制,并且ssh只监听内网ip
- 最小化服务器公网ip
scp实现远程拷贝
scp -P port -rp file user@host_ip:target_dir
-P 指定端口
-r 递归拷贝目录
-p 保持文件属性
file 文件
user 以什么身份连接远端主机
host_ip 远端主机IP
target_dir 目标目录
例如:
scp -P 22 -rp test.txt root@172.16.1.5:/tmp
# 拷贝test.txt到远端主机tmp下
应用:
- scp可以实现两台可以通信主机之间拷贝文件
- 每次都是完整拷贝,效率没有rsync效率高
ssh的sftp功能使用
sftp -o Port=port user@password
-o 指定参数
-Port 指定端口
例如:
sftp -o Port=22 root@172.16.1.5
上传文件:
put file target_dir
如: put /etc/hosts /tmp
# 把当前主机下/etc/hosts文件上传到远端主机/tmp目录下,需要权限,权限来源
# 登录的身份
下载:
get file target_dir
如: put /etc/hosts /tmp
# 把远端主机中/etc/hosts文件下载到本地/tmp目录下
# 上传和下载的文件不能指定目录,且这个ftp服务不安全,可以执行大部分linux命令,也拥有
# 登录身份的所有权限
如何通过ssh的密钥登录?
1. 创建密钥对,公钥和密钥
非交互:echo -e "\n"|ssh-keygen -t dsa -N "" 交互:sh-keygen -t dsa # 这两条命令将会在对应用户家目录下的 .ssh/ 目录创建两个文件 id_dsa 、id_dsa.pub # id_dsa 是私钥, id_dsa.pub 是公钥,基于当前用户 whoami 查看当前用户
2. 分发密钥,公钥发给远端服务,私钥留在本机
ssh-copy-id -i .ssh/id_dsa.pub "-p 520 root@172.16.1.5" # -p指定非默认端口,需要引号引起来 # 需要输入对应主机以什么用户发起连接对应的密码,连接远程机器以root身份登录需要输# 入root的密码 # 成功分发,将会保存在对应用户家目录下 ~/ssh/authorized_keys,发现更名了
3. 密钥登录
ssh -p 520 root@172.16.1.5 # 直接连接过去,不在需要对应主机对应用户的密码 # 生成密钥对,对应当前用户,分发密钥可以任何用户和主机,但需要对应主机用户的密码 # 分发成功只能生成密钥对的用户可以无密码登录接收分发密钥的远端主机指定用户
linux_ssh的更多相关文章
- 六、Linux_SSH服务器状态
一.保持Xshell连接Linux服务器状态 1.登录服务器后 cd /etc/ssh/ vim sshd_config 找到 ClientAliveInterval 0和ClientAliveCou ...
- linux_ssh用户枚举猜测
新建一个用户名txt文档,写入常用的用户名 msfconsole use auxiliary/scanner/ssh/ssh_enumusers3
随机推荐
- 移动端H5页面惯性滑动监听
移动端H5页面惯性滑动监听 在移动端,当你快速滑动有滚动条的页面时,当你手指离开屏幕时,滚动条并不会立即停止,而是会随着"惯性"继续滑动一段距离. 在做项目的过程中,需要监听惯性滑 ...
- Java学习笔记19(String类)
String代表字符串,在Java中,所有的字符串字面值都作为此类的实例实现 字符串的特点以及简单的原理分析: package demo; /* * String类的特点: * 所有的"&q ...
- PE格式详解讲解1
这篇文章主要转载自小甲鱼的加密解密部分,然后补充加上我自己的少许内容,原文地址–>传送门 下面的内容主要是围绕这个图来进行 MS-DOS头部 这个头部是为了兼容早期的DOS系统,PE文件的第一个 ...
- Jmeter脚本调试之关联----(正则表达式)
脚本调试 关联,在脚本中,是必应用到的一个设置方法,将脚本中,每次都会动态变化的特殊值进行关联.一个能正确执行的脚本,都需要进行关联(LR.jmeter). Jmeter关联: 在脚本回放过程中,客户 ...
- CCS入门基础
1.CSS概念 全称为Cascading Style Sheets(层叠样式表),支持专有的文件 - 扩展名为".css" 作用:将HTML的结构(HTML标签即html)与样 ...
- JMeter基本元素简介
JMeter基本元素简介 一.测试计划 测试计划对象有一个复选框叫做"Functional Testing"(函数测试模式),如果选中,它将使jmeter记录服务端返回的每一个样例 ...
- re 模块 正则表达式
re模块(正则表达式) 一.什么是正则表达式 正则就是用一些具有特殊含义的符号组合到一起(称为正则表达式)来描述字符或者字符串的方法.或者说:正则就是用来描述一类事物的规则.(在Python中)它 ...
- 从头开始基于Maven搭建SpringMVC+Mybatis项目(3)
接上文内容,本节介绍基于Mybatis的查询和分页功能,并展示一个自定义的分页标签,可重复使用以简化JSP页面的开发. 从头阅读传送门 在上一节中,我们已经使用Maven搭建好了项目的基础结构,包括一 ...
- 栈的存储结构的实现(C/C++实现)
存档 #include "iostream.h" #include <stdlib.h> #define max 20 typedef char elemtype; # ...
- 基于Windows环境下MyEclipse10快捷键总结
---------------------------------------------MyEclipse 快捷键1(CTRL)----------------------------------- ...