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 能够使 ...
随机推荐
- HDOJ-6645(简单题+贪心+树)
Stay Real HDOJ-6645 由小根堆的性质可以知道,当前最大的值就在叶节点上面,所以只需要排序后依次取就可以了. #include<iostream> #include< ...
- Linux发行版及其目标用户
1.Debian Debian 众所周知,是Deepin,Ubuntu和Mint等流行Linux发行版的母亲,这些发行版提供了可靠的性能,稳定性和无与伦比的用户体验.最新的稳定发行版是Debian 1 ...
- Codeforces Round #685 (Div. 2)
待补 A #include <bits/stdc++.h> using namespace std; int n; int main() { int __; scanf("%d& ...
- Go ORM框架 - GORM 踩坑指南
今天聊聊目前业界使用比较多的 ORM 框架:GORM.GORM 相关的文档原作者已经写得非常的详细,具体可以看这里,这一篇主要做一些 GORM 使用过程中关键功能的介绍,GORM 约定的一些配置信息说 ...
- get和post的区别主要有以下几方面
1.url可见性: get,参数url可见: post,url参数不可见 2.数据传输上: get,通过拼接url进行传递参数: post,通过body体传输参数 3.缓存性: get请求是可以缓存的 ...
- .NetCore 导出Execl
/* Nuget - NPOI.2.5.1 */ using NPOI.HSSF.UserModel;using NPOI.SS.UserModel;using NPOI.XSSF.UserMode ...
- django常用模板语言
一.变量 django模板接收到从后端传来的参数,放入模板中对应的变量中#django代码 def info(request): .... return render(request,'info.ht ...
- 从本质彻底精通Git——4个模型1个周期1个史观1个工作流
一.什么是Git? Git是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目. Git是Linus Torvalds为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软 ...
- Starting Tomcat v9.0 Server at localhost' has encountered a problem
•问题描述 在通过 Eclipse 打开 Tomcat 时报错: •解决方案 找到 Tomcat 的安装位置,打开 tomcat\bin 目录,找到 shutdown.bat,手动关闭 tomcat: ...
- [Azure Devops] 使用 Azure Repos 管理代码
1. 什么是 Azure Repos Azure Repos 是一组版本控制工具,可用于管理代码.无论您的软件项目是大型项目还是小型项目,都应尽快使用版本控制. 版本控制系统是可帮助您跟踪随时间变化对 ...