SSH基础服务,SSH是远程连接Linux,管理Linux的服务。
Secure Shell Protocol简写SSH 安全的shell协议
使用的默认的端口为22(一台机器的不同功能就用端口区分)
ssh参数:
-p 指定端口
格式:命令 -p 端口用户@IP相当于ssh IP
scp命令参数:
-P端口
-r递归
-p保持属性
-l 限制速度
推:
scp -P 22 -rp /data root@172.16.1.7:/tmp
scp -P -rp /data 172.16.1.7:/tmp
拉
scp -P 22 -rp root@172.16.1.7:/data /tmp
scp -P -rp 172.16.1.7:/data /tmp
对比下scp和rsync
scp每一次都是全量考本,加密拷贝。
rsync第一次全量拷贝,远程shell也是加密拷贝
sftp命令:加密的ftp服务,默认缺点不能锁定家目录。
ftp:vsftp。
sftp服务也支持windows ftp客户端:
winscp,flashftp,xshell也支持
常规和服务器交互数据文件:
rz/sz 属于lrzsz
ssh服务配置:
s
使用用户名密码登录
不需要密码登录,使用密钥文件就可以连接服务器。
实践密钥认证:
项目实践:批量管理、批量分发内容项目
1、基于root用户做Linux之间的秘钥认证。
2、生成密钥对(去超市买把锁),不需要指定服务器。
3、在61上生成密钥对(方便)。
4、把锁放到7/8上
C6:
5、ssh-copy-id:原理
6、测试远程执行命令:
7、写个脚本
8、开发脚本实现批量管理服务器:
9、批量发文件:
复杂分发文件脚本:
SSH批量管理如何一键完成:
一键创建及分发秘钥:
在办公室上班的时候,能够通过putty、Xshell远程家里的电脑
为什么需要openSSH+花生壳?
openSSH: 主要用于搭建远程安全协议服务
花生壳: 主要用于解决没有外网IP的问题,可以申请一个免费临时的域名,通过此域名映射局域网内的电脑;
办公电脑访问通过Xshell连接访问家里的电脑:
-2、解压到C:\Program Files\OpenSSH 不要放在别的路径下,官方这样要求的
2)开放22号端口(如果你在windows关闭了防火墙并配置了入站规则可以不执行如下命令,多执行不影响)
3)配置开机自启sshd服务
到此就安装完成
4,将C:\Program Files\OpenSSH添加到path中,免得每次都要切到C:\Program Files\OpenSSH才能使用ssh,启动ssh服务
5,测试
首次连接未知主机会有是否继续的警告,输入yes就可以了,然后输入密码即可。
win7上没有显示[root@localhost ~]# 但不影响命令的执行。
可以通过密钥登录,我们这里就只通过 用户名:Administrator 密码:**** 登录
上面的教程可以参考: https://blog.csdn.net/hehuihh/article/details/90575791
使用另一台电脑安装Xshell,不在同一个网段中
点击链接之后,需要输入用户名和密码
1. ssh简介以及本例的应用场景① ssh的简介
SSH是一个用来替代TELNET、FTP以及R命令的工具包,主要是想解决口令在网上明文传输的问题。为了系统安全和用户自身的权益,推广SSH是必要的。 SSH是英文Secure Shell的简写形式。通过使用SSH,你可以把所有传输的数据进行加密,这样"中间人"这种攻击方式就不可能实现了,而且也能够防止DNS欺骗和IP欺骗。
② 本例的应用场景
用户在client(Linux)上通过ssh远程执行server(Windows)上的命令,比如c:\test.bat
注:Linux版自带ssh Server且默认启动,具体设置方法请参见google。
2. ssh服务器的安装(Windows)
ssh服务器软件有许多中,我们这里使用的是免费的freeSSHd。
① 首先从官方站点下载软件并安装(http://www.freesshd.com/)
② 安装完成后进入配置界面(Server Status),确认SSH server正在运行状态
③ 进入Users界面,设定一个访问的用户账户(比如xut)
这里我们建立一个叫xut的用户,认证有3种方式可以选择。从以后通过ssh运行命令的方便(无需输入密码)考虑,我们选择Public key认证方式。选择Password方式的话,每次访问需要输入密码,此种方式较为繁琐而且安全性不高。然后开放其Shell权限。
④ 进入认证界面,确认Public key认证方式属于激活状态(选择Allowed或Required)
此时ssh服务器端的基本设置已经OK,可进一步进行更加详细的设置(比如访问限定等),此处不再介绍。
注意:服务器端如果有防护墙时应该开发TCP 22号端口最为ssh连接使用。
3. ssh客户端的设置(Linux)
由于我们的客户端采用的是Linux,所以不用安装客户端软件,系统自带的就有。
我们需要在Linux上创建一个共有和私有的密钥对,私有密钥放到客户端(Linux)上,共有密钥放到服务器端(Windows)上。在Linux上通过ssh-keygen命令来创建。
[root@localhost ~]# ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): [直接回车]
Enter passphrase (empty for no passphrase): [直接回车]
Enter same passphrase again: [直接回车]
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
4d:dd:48:af:76:c2:ba:a8:bc:20:f3:28:1d:6a:28:53
其中,/root/.ssh/id_rsa为私有密钥,/root/.ssh/id_rsa.pub为共有的密钥。
此时,需要把共有密钥放到服务器端(Windows)进行保存,以便于服务器端进行安全检查。
我们通过认证界面找到存放共有密钥的地址(Public key folder)。
如上图所示,然后在c:\Program Files\freeSSHd目录下创建以登录用户名为名字的文本文件,此处举例为xut文件。并将/root/.ssh/id_rsa.pub文件中的内容拷贝到c:\Program Files\freeSSHd\xut文件中。
至此,客户端和服务器端的密钥设置已经完成,可以通过如下命令进行远程的命令执行。
ssh xut@172.28.xx.xxx "c:\test.bat"
这条命令将执行服务器端的C盘下的test.bat文件,并把结果返回,整个操作不需输入密码。
4. ssh客户端的设置(Windows)
由于Windows不附带ssh的客户端和服务器端,我们这里找一个免费的客户端软件PuTTY。
PuttY主页:http://www.chiark.greenend.org.uk/~sgtatham/putty/
各种客户端的比较:http://en.wikipedia.org/wiki/Comparison_of_SSH_clients
在Putty主页,我们下载putty.zip(含除了PuTTYtel以外的所有文件),然后解压会发现一个叫plink.exe的文件,这就是我们的ssh客户端命令行软件。
我们首先要成一个共有和私有的密钥对,使用putty.zip中附带的PUTTYGEN.exe生成。
启动PUTTYGEN.exe后可以见到下图界面,点击[Generate]即可生成所需密钥对。
注意:由于是采用随机算法生成,需要不停地在对话框上移动鼠标进度条才会增加,否则将保持不变。
鼠标在这里不停移动
密钥生成完毕后,可以把私有密钥进行保存,为了登录简单起见不对私钥进行加密,提示没有passphrase选择忽略即可。假设我们这里把私钥保存为pri_key.ppk。
我们把公钥放在freeSSHd端(ssh服务器端)进行保存,具体保存方法参见【ssh客户端的设置(Linux)】。
在Windows客户端,执行如下命令进行ssh连接,并不需要输入密码即可通过密钥进行自动认证。
plink -i pri_key.ppk xut@172.28.xx.xxx c:\test.bat
(此时将执行服务器端的c:\test.bat脚本。)
注:第一次连接时将出现“The server's host key is not cached in the registry…
欢迎分享,转载请注明来源:夏雨云
评论列表(0条)