Linux中的SSH服务
目录
基于SSH做远程访问,可以使用ftp服务的相关指令sftp root@192.168.10.10
SSH
SSH(Secure Shell)安全外壳协议,SSH是用来替代常见的不安全的网络应用的协议。比如Telnet、FTP,他们都是基于明文传输的协议,所以很不安全。Openssh 提供基于用户的身份验证,而且能够通过端口隧道转发不安全协议,在隧道里面,数据都是被加密的。
SSH验证:
- password (sent securely)
- RSA and DSA keys (公私钥验证)
- Kerberos
- s/key and SecureID(OTP)
相关联的RPM包:openssh(底层包) 、 openssh-clients 、 openssh-server
服务器端安装: yum install openssh-server (安装了openssh-server会自动安装openssh)
客户端安装: yum install openssh-clients (安装了openssh-clients 会自动安装openssh)
卸载: yum remove openssh (卸载了openssh,然后会自动卸载openssh-server和openssh-clients)
服务:/usr/sbin/sshd
服务端口:tcp / 22
服务器端配置文件:/etc/ssh/sshd_config
客户端配置文件: /etc/ssh/ssh_config
用法:ssh -p 22 root@192.168.10.10 ,如果配置文件中 /etc/ssh/ssh_config 默认是22号端口,则可以直接 ssh root@192.168.10.10
服务开启/关闭/重启/开机自启/开启不自启: systemctl start / stop / restart / enable / disable sshd
ssh服务端的配置文件(部分): /etc/ssh/sshd_config
#Port 22 //默认的端口号为22 修改端口时,取消注释
#LoginGraceTime 2m //ssh登录时,密码验证的超时时间,默认2分钟
#PermitRootLogin yes //是否允许以root用户身份登录
#MaxAuthTries 6 //最大认证次数
#MaxSessions 10 //登录Sessions保持的天数
#PermitEmptyPasswords no //是否允许空密码
PasswordAuthentication yes //开启密码认证
在安装了SSH的机器上,会有ssh和sshd两个程序,分别是 /usr/sbin/sshd 和 /usr/bin/ssh 。

sshd是服务端的程序,ssh是客户端的程序。我们现在用Xshell连接主机,此时主机上运行的是sshd程序。

我们现在用该主机连接其他的主机,此时我们上面还会运行ssh程序


在 /etc/ssh/ 下面有 ssh_config 和 sshd_config ,分别是客户端的配置文件和服务端的配置文件。

使用scp在两台Linux间传数据:
本机传数据给目的主机
- scp /etc/fstab root@192.168.10.10:/tmp 将本机 /etc/fstab 文件传送到目的主机的 /tmp目录下
- scp -r /etc/ssh/ root@192.168.10.10:/tmp 将本机 /etc/ssh/ 文件夹传送到目的主机的 /tmp 目录下
将目的主机的数据下载到本地
- scp root@192.168.10.5:/etc/fstab /tmp 将目的主机的 /etc/fstab 文件下载到本机的 /tmp 目录下
- scp -r root@192.168.10.5:/etc/ssh/ /tmp 将目的主机的 /etc/ssh/ 文件夹下载到本机的 /tmp 目录下
基于SSH做远程访问,可以使用ftp服务的相关指令
- sftp root@192.168.10.10
- get /etc/fstab 将远端主机的 /etc/fstab下载到本机
- put /etc/fstab 将本机的 /etc/fstab 上传到远端主机

注:通过 sftp 成功登录,在对端主机的/var/log/wtmp是没有日志信息的。但是如果sftp登录失败,在对端主机的/var/log/btmp是有日志信息的。
查看本机有多少终端登录: who 和 w
通过 who 显示远端10.0.0.1的地址通过ssh登录本机,然后本机开了两个tty终端
然后再通过 w 可以查看他是几点登录的,当前正在运行的命令是top
然后在通过 ps aux | grep pts 可以看到pts进程以及子进程
Openssh公私钥验证:
- 在主机A上,使用 ssh-keygen,然后输入保存的文件名(默认为id_rsa)和自己的私钥,完成之后会在 ~/.ssh/ 生成的两个密钥: id_rsa(私钥) 和 id_rsa.pub(公钥)
- 私钥(id_rsa)保存在本地主机,公钥(id_rsa.pub)通过 ssh-copy-id root@192.168.1.200 会自动传递到对端B主机的~/.ssh/目录下,并且自动重命名为 authorized_keys
- 登录目标主机: ssh root@192.168.1.200 使用刚刚输入的私钥登录
使用 ssh-keygen ,然后回车(默认是生成文件名为 id_rsa ,也可以自己手动输入修改),然后再输入私钥密码
可以看到,在 /root/.ssh/ 目录下已经生成了 id_rsa 私钥和 id_rsa.pub 公钥了
进入/root/.ssh/目录,使用 ssh-copy-id root@192.168.1.200 命令,它会将 id_rsa.pub 公钥传到目标主机 ~/.ssh/ 目录下,并且会自动重命名为 authorized_keys
可以看到,目标主机已经收到 id_rsa.pub公钥了,并且已经重命名为 authorized_keys
然后在主机上 ssh root@192.168.1.200 然后输入我们自己的私钥就可以登录了。
Linux中的SSH服务的更多相关文章
- 使用Linux系统中的SSH服务
使用Linux系统中的SSH服务 1.SSH服务应用场景 ① 可以实现对文件的上传与下载 ② 实现远程管理Linux 2.安装SSH服务器 服 务:sshd 位 置:光盘2 软 件:openssh-s ...
- 如何在ubuntu中启用SSH服务
如何在ubuntu14.04 中启用SSH服务 开篇科普: SSH 为 Secure Shell 的缩写,由 IETF 的网络工作小组(Network Working Group)所制定:SSH 为 ...
- docker中安装ssh服务
系统:Debian Docker 目标:在docker(debian系统)中安装ssh服务,实现远程登陆和控制docker 步骤: 初始状态:通过docker pull debian得到的一个debi ...
- Linux中如何设置服务自启动?
转自:Linux中如何设置服务自启动? 有时候我们需要Linux系统在开机的时候自动加载某些脚本或系统服务,主要用三种方式进行这一操作: ln -s 在/etc/rc.d/rc ...
- Linux中的sshd服务
Linux中的sshd服务,主要用于pst终端,远程连接到linux服务中 看sshd服务状态 service sshd status 停止sshd服务 service sshd stop 启动ssh ...
- win10下Linux子系统开启ssh服务
原文:win10下Linux子系统开启ssh服务 为了便于交流共同学习,博主QQ群242629020(stm32-MCU认认真真交流群) 欢迎批评指导!!!电梯:https://jq.qq.com/? ...
- Linux中解决SSH连接慢问题
[转载]来源:http://www.bkjia.com/xtzh/893669.html [转载原因]:其他文章都是修改服务器端配置,但为了保证服务器端安全问题,一般情况下最好不要修改服务器端配置.因 ...
- Linux 下开启ssh服务(转)
二.SSH SSH 为 Secure Shell 的缩写,由 IETF 的网络工作小组(Network Working Group)所制定:SSH 为建立在应用层和传输层基础上的安全协议.SSH 是目 ...
- Kali Linux上安装SSH服务
安装 SSH 从终端使用 apt-get 命令安装 SSH 包: # apt-get update # apt-get install ssh 启用和开始使用 SSH 为了确保安全 shell 能够使 ...
随机推荐
- Mybatis(一):手写一套持久层框架
作者 : 潘潘 未来半年,有幸与导师们一起学习交流,趁这个机会,把所学所感记录下来. 「封面图」 自毕业以后,自己先创业后上班,浮沉了近8年,内心着实焦躁,虽一直是走科班路线,但在技术道路上却始终没静 ...
- 第01章-Java SE8的流库
从迭代到流的操作 流表面上看起来和集合很类似,都可以让我们转换和获取数据,但是它们之间存在着显著的差异 流并不存储其元素,这些元素可能存储在底层的集合中,或者是按需生成的 流的操作不会修改其数据源 流 ...
- 基于云原生DevOps服务自动化部署前端项目学习总结
本文主要以部署前端Vue项目为例,讲述了如何基于云原生DevOps服务自动化部署前端项目~从开发完成到线上环境,我们只需提交代码即可~ 一.引言 作为一名开发人员,日常工作中我们除了需要负责代码的开发 ...
- roarctf_2019_realloc_magic
目录 roarctf_2019_realloc_magic 总结 题目分析 checksec 函数分析 解题思路 初步解题思路 存在的问题 问题解决方案 最终解决思路 编写exp exp说明 roar ...
- rest framework renderers
渲染器 前TemplateResponse实例可以被返回给客户端,它必须被渲染.渲染过程需要模板和上下文的中间表示,并把它变成能够提供给客户端的最后一个字节流. - Django文档 REST框架包含 ...
- WebSocket与即时通讯
HTTP 协议有一个缺陷:通信只能由客户端发起!HTTP 协议做不到服务器主动向客户端推送信息.这种单向请求的特点,注定了如果服务器有连续的状态变化,客户端要获知就非常麻烦.我们只能使用"轮 ...
- 【Azure API 管理】APIM CORS策略设置后,跨域请求成功和失败的Header对比实验
在文章"从微信小程序访问APIM出现200空响应的问题中发现CORS的属性[terminate-unmatched-request]功能"中分析了CORS返回空200的问题后,进一 ...
- Apache配置 1. 默认虚拟主机
编辑httpd.conf搜索httpd-vhosts,去掉#号 # vi /usr/local/apache2.4/conf/httpd.conf Include conf/extra/httpd-v ...
- 攻防世界 reverse evil
这是2017 ddctf的一道逆向题, 挑战:<恶意软件分析> 赛题背景: 员工小A收到了一封邮件,带一个文档附件,小A随手打开了附件.随后IT部门发现小A的电脑发出了异常网络访问请求,进 ...
- JAVA面试核心知识点(一):计算机网络
一·计算机网络 1.1 网络基础知识 OSI 七层协议(制定标准使用的标准概念框架): 物理层(传递比特流0101)->数据链路层(将比特流转换为逻辑传输线路)->网络层(逻辑编址,分组传 ...