ssh服务以及OpenSSLssh

ssh软件由两部分组成:ssh服务端和ssh客户端。

  ssh的配置文件在/etc/ssh/目录下,其中服务端的配置文件是sshd_config,客户端的配置文件是ssh_config.
  安装ssh,在这里,只讲述通过yum安装的方法(前提是你的yum源配置正确,并且能使用):

yum install openssh-* -y yum会自动安装所有openssh相关的软件包

配置ssh服务器

根据ssh的两种验证方式,配置两种不能安全级别的登录方式。
  ·通过口令验证方式登录

1.用vim编辑器打开sshd_config配置文件

vim /etc/ssh/sshd_config

2.对配置文件进行如下修改(根据自身实际情况可有所调整):
  Port 22 //默认使用22端口,也可以自行修改为其他端口,但登录时要打上端口号
  #ListenAddress //指定提供ssh服务的IP,这里我注释掉。
  PermitRootLogin //禁止以root远程登录
  PasswordAuthentication yes //启用口令验证方式
  PermitEmptyPassword //禁止使用空密码登录
  LoginGraceTime 1m //重复验证时间为1分钟
  MaxAuthTimes 3 //最大重试验证次数
  保存修改好的配置,退出。

3.重启sshd服务

service sshd restart

通过密钥对验证方式登录

1.在客户端生成密钥对

注:生成密钥对前,需切换相应用户身份。例如:当user1需要登录到服务端时,user1必须在客户端生成自己的密钥文件。其他用户也一样。

#su - user1

#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:
33:ee:01:7d:c3:74:83:13:ef:67:ee:d7:60:2d:e1:16 [email protected]

#ll -a .ssh/

drwxrwxrwx 2 root root 4096 10-08 19:29 .
drwxr-x--- 21 root root 4096 10-08 19:25
-rw------- 1 root root 1743 10-08 19:29 id_rsa //创建的私钥
-rw-r--r-- 1 root root 396 10-08 19:29 id_rsa.pub //创建的公钥
-rw-r--r-- 1 root root 790 2015-11-04 known_hosts

2.上传公钥文件到服务器或者用U盘拷贝到服务器里

#scp .ssh/id_rsa.pub [email protected]:/home/user1/

3.在服务器端,将公钥文件添加到相应用户的密钥库里

mkdir -p /home/user1/.ssh/ //注意,这里创建的。ssh目录权限必需是除自己外,对其他用户只读,也就是权限位设置为644,所属者与所属者组都是其用户

mv /home/user1/id_rsa.pub /home/user1/,ssh/authorized_keys //由于生成的公钥名称与指定的公钥名称不符,因此需要将生成的文件名换成authorized_keys即可。

4.修改sshd_config配置文件

vim /etc/ssh/sshd_config

PasswordAuthentication no //禁用口令验证方式,不能把原有的PasswordAuthentication yes注释掉,注释后,就算没有公钥也能通过口令登录,这样不安全,而且失去了密钥验证的意义。
RSAAuthentication yes //启用RSA验证
PubkeyAuthentication yes //启用公钥验证
AuthorizedKeysFile .ssh/authorized_keys //启用公钥文件位置,后面的路径是设置公钥存放文件的位置
保存修改好的配置,退出。sshd_config配置文件[点击打开链接

5.重启sshd服务

#service sshd restart

sftp命令

交互式文件传输工具
用法和传统的ftp工具相似
利用ssh服务实现安全的文件上传和下载
使用ls cd mkdir rmdir pwd get put等指令,可用?或help获取帮助信息
sftp [[email protected]]host

pssh工具

pssh是一款开源的软件,使用python实现,用于批量ssh操作大批量机器;pssh是一个可以在多台服务器上执行命令的工具,同时支持拷贝文件,是同类工具中很出色的;比起for循环的做法,我更推荐使用pssh!使用pssh的前提是:必须在本机与其他服务器上配置好密钥认证访问(即ssh信任关系)。

1)安装pssh

可以yum直接安装:
[[email protected] ~]# yum install -y pssh

2)pssh用法

[[email protected] ~]# pssh --help
-h 执行命令的远程主机列表文件
-H [email protected]:port 文件内容格式[[email protected]]host[:port]
-l 远程机器的用户名
-p 一次最大允许多少连接
-o 输出内容重定向到一个文件
-e 执行错误重定向到一个文件
-t 设置命令执行的超时时间
-A 提示输入密码并且把密码传递给ssh(注意这个参数添加后只是提示作用,随便输入或者不输入直接回车都可以)
-O 设置ssh参数的具体配置,参照ssh_config配置文件
-x 传递多个SSH 命令,多个命令用空格分开,用引号括起来
-X 同-x 但是一次只能传递一个命令
-i 显示标准输出和标准错误在每台host执行完毕后
-I 读取每个输入命令,并传递给ssh进程 允许命令脚本传送到标准输入

3)pssh实例说明

cat hosts.txt //列表文件内的信息格式是“ip:端口”,如果本机和远程机器使用的ssh端口一致,则可以省去端口,直接用ip就行。不过建议还是将端口都带上为好。
192.168.1.101:22
192.168.1.109:22
192.168.1.118:25791
192.168.1.105:25791
如上四台机器放在一个列表文件hosts.txt内,本机已经和这四台机器做了ssh无密码登陆的信任关系

注意:列表文件内的机器必须提前和本机做好ssh信任关系,如果没有做的话,那么pssh批量执行时,轮到这台没有做信任关系的机器时就不会执行

a)批量执行命令

[[email protected] ~]# pssh -h hosts.txt -l root -i ‘uptime‘

如果添加-A参数,那么即使提前做了ssh信任关系,还是会提示输入密码!

[[email protected] ~]# pssh -h hosts.txt -l root -i -A ‘uptime‘
Warning: do not enter your password if anyone else has superuser
privileges or access to your account.
Password: //注意这个参数添加后只是提示作用,可以在此随便输入或者不输入直接回车都可以

b)批量上传文件或目录(pscp.pssh命令)

1.批量上传本地文件/mnt/test.file到远程服务器上的/tmp目录:

pscp.pssh -l root -h hosts.txt /mnt/test.file /tmp/

2.批量上传本地文件/mnt/test.file、/mnt/aa.file、/mnt/bb.file到远程服务器上的/tmp目录:

pscp.pssh -l root -h hosts.txt /mnt/test.file /mnt/aa.file /mnt/bb.file /tmp/或者

pscp.pssh -l root -h hosts.txt /mnt/{test.file,aa.file,bb.file} /tmp/

3.批量上传本地目录/mnt/zhong到远程服务器上的/tmp目录(上传目录需要添加-r参数):

pscp.pssh -l root -h hosts.txt -r /mnt/zhong /tmp/

c)批量下载文件或目录(pslurp命令)

1.批量下载服务器上的某文件到本地,不用担心重名问题,因为pssh已经建立了以文件列表内的ip为名称的目录来存放下载的文件:

pslurp -l root -h hosts.txt /etc/hosts

另外特别注意:
上面的批量下载操作,只能下载到本地的当前目录下,不能在命令中跟指定的路径:

2.pslurp -l root -h hosts.txt /etc/hosts /mnt/

3.要想下载到本机的/mnt目录下,正确的做法是先切换到/mnt目录下,然后再执行下载命令:(列表文件要跟全路径)**

cd /mnt/

pslurp -l root -h /root/hosts.txt /etc/hosts ./

4.上面是批量下载文件,要是批量下载目录,只需要添加一个-r参数即可!

pslurp -l root -h /root/hosts.txt -r /home/ ./

d)批量同步(prsync命令)

1.同步本机/mnt/test目录下的文件或目录到远程机器的/mnt/test路径下

prsync -l root -h hosts.txt -r /mnt/test/ /mnt/test/

2.同步本机/mnt/test目录下的文件或目录到远程机器的/mnt路径下

prsync -l root -h hosts.txt -r /mnt/test/ /mnt/

注意:
上面批量同步目录操作是将本机对应目录数据同步到远程机器上,远程机器上对于目录下多余的文件也会保留(不会删除多余文件)

同理,批量同步文件操作,去掉-r参数,
注意:同步文件的时候,其实就是完全覆盖,远程机器对应文件内的文件会被全部替换!

3.同步本机的/mnt/test/file文件内容到远程服务器/mnt/test/file文件内

prsync -l root -h hosts.txt /mnt/test/file /mnt/test/file

e)批量kill远程机器上的进程(pnuke命令)

比如批量kill掉远程机器上的nginx进程

pnuke -h hosts.txt -l root nginx

SSH端口转发

1、创建iptables,拒绝 192.168.30.69 连接 192.168.30.75

2、启用 192.168.30.75 上的 telnet 服务端口

本地端口转发

本地主机是192.168.30.69

语法:ssh -L 本地端口:目标主机地址:目标端口 SSH服务器地址



选项

-f 后台启用
-N 不打开远程shell,处于等待状态
-g 启用网关功能

转发过程:data<->localhost:1024<->localhost:XXXXX<->sshsrv:22 <->sshsrv:YYYYY<->telnetsrv:23

远程端口转发

本地主机是192.168.30.74

语法:ssh -R 远程端口:目标主机地址:目标端口 SSH服务器地址

转发过程:data<->sshsrv:1024<->sshsrv:22<->localhost:XXXXX<->localhost:YYYYY<->telnetsrv:23

原文地址:http://blog.51cto.com/13958408/2175620

时间: 2024-12-30 18:30:53

ssh服务以及OpenSSLssh的相关文章

安全与加密之gpg,ssh服务

安全与加密 本章目录 gpg的使用 ssh服务 dropbear aide 1. gpg的使用 GPG是加密和数字签名的免费工具,大多用于加密信息的传递.除了仅用密码加密外,GPG最大的不同是提供了"公钥/私钥"对.利用你的"公钥"别人加密信息不再需要告诉你密码,随时随地都能发送加密信息.而这种加密是单向的,只有你的"私钥"能解开加密.数字签名又是另一大使用方向.通过签名认证,别人能确保发布的消息来自你,而且没有经过修改. 使用gpg实现对称加密

ssh 服务端安全配置

更改ssh服务端配置文件 [[email protected] ~]# vi /etc/ssh/sshd_config Port 59118                 #ssh 连接默认端口为22 ,更改后提高安全级别 PermitRootLogin no         #禁止root用户远程登录 PermitEmptyPasswords no    #禁止空密码登录 UseDNS no                  #不使用DNS GSSAPIAuthentication no  

Linux启用ssh服务相关操作

检查linux系统是否已经安装了ssh服务,有openssh或其他xxxssh,表示有安装ssh服务 命令:rpm -qa | grep ssh 2.启动ssh服务 ssh 服务用命令表示为sshd,所以启动命令为:service sshd start 3.查看端口使用情况 查看所有tcp端口:netstat -tnlp 查看指定端口:netstat -tnlp | grep 22 4.在windows的dos窗口下测试ssh服务是否连接成功,命令:telnet ip地址 端口号

win10下Linux子系统开启ssh服务

原文地址:http://whosmall.com/?post=430 本文标签: 开启ssh Linux子系统 虽然win10自带的bash功能已经很丰富,操作也简便,不过习惯了用xshell, 还是选择用xshell来操作 直接用xshell连接127.0.0.1 端口22 提示连接失败.说明应该是ubuntu的sshd服务设置有问题: 解决方案如下: 安装ssh apt-get install openssh-server 备份sshd配置文件 sudo cp /etc/ssh/sshd_c

SSH服务介绍

本文是在m01机器上面操作的. 查看ssh服务是否启动: [[email protected] ~]# /etc/init.d/sshd statusopenssh-daemon (pid  1220) is running... ssh服务对应进程是什么? [[email protected] ~]# ps -ef|grep sshdroot       1220      1  0 19:13 ?        00:00:00 /usr/sbin/sshd   (ssh服务)root   

2016-11-05实战-定义ssh服务的日志

1.编辑/etc/rsyslog.conf 输入 local 0 .*     /var/log/sshd.log   #日志的保存路径 2.定义ssh服务的日志级别 编辑sshd服务的主配置文件:/etc/ssh/sshd_config 3.使配置生效 1)重启rsyslog服务(生效配置) systemctl restart rsyslog 2)重启sshd服务,重启后生成文件/var/log/sshd.log systemctl restart sshd 4.查看sshd.log

Ubuntu开启ssh服务(14.04)

更新Ubuntu源 打开"终端窗口",输入"sudo apt-get update",终端窗口在图形界面下可以使用搜索文件terminal. 安装ssh服务端 Ubuntu默认安装了ssh客户端,但没有服务端 打开"终端窗口",输入"sudo apt-get install openssh-server" 查看ssh服务是否启动 打开"终端窗口",输入"sudo ps -e|grep ssh&qu

在Virtual Box上安装linux系统,启动SSH服务

? 一.????在Virtual Box上创建虚拟机????1 二.????安装linux系统????6 三.????重新设置 root 的密码:????8 四.????启动ssh服务????8 五.????建立共享文件夹????9 ? ? 摘自以下网页内容: 如何在Virtual Box上安装linux系统 : http://jingyan.baidu.com/album/2009576197fd24cb0721b409.html?picindex=1 Linux终端得到root权限 :htt

[SSH服务]——一个SSH无密码登陆实验

实验拓扑图 实验描述 机房内有两台服务器: (1)B服务器10.0.10.158,充当Web服务器,有普通用户user_00 (2)C服务器10.0.10.191,充当Mysql服务器,有普通用户user_00 有服务器A 10.0.10.198,供管理员平常使用来管理机房内的机器.为方便起见,所以要求做到: (1)A服务器能SSH远程登录(以user_00的身份)到B和C,且实现无密码登陆: (2)远程登录后,user_00可以直接sudo到root而不需要密码. 在服务器B:10.0.10.