SSH(远程登录) | 您所在的位置:网站首页 › 用于远程登录的服务器有哪些 › SSH(远程登录) |
在linux中SSH服务对应两个配置文件:
ssh特点:在传输数据的时候,对文件加密后传输。 ssh作用:为远程登录会话和其他网络服务提供安全性协议。
ssh小结: 1、SSH是安全的加密协议,用于远程连接服务器。 2、SSH默认端口是22,安全协议版本有SSH2、SSH1。(SSH1有漏洞) 3、SSH服务端主要包含两个服务功能SSH远程连接和SFTP服务。 4、Linux SSH客户端包含ssh远程连接命令,以及远程拷贝scp命令等。
ssh服务有如下两个工具:
***服务端或客户端版本不相同是连接不上的***
客户端连接服务端基本口令(-p指定端口,不加为默认端口): ssh -p22 [email protected]或ssh [email protected]
linux通信验证所在地(等第一次登录时会在本地残生一个秘钥文件~/.ssh/known_hosts【多个秘钥】): cd ~/.ssh/
SSH默认登录文件相关参数配置 相关参数说明(/etc/ssh/sshd_config): port :指定sshd进程监听的端口号,默认为22.可以使用多条指令多个端口。默认为22,可以使用多条指令监听多个端口。默认将在本机的所有网络接口上监听,但是可以通过ListenAddress指定只在特点的接口上监听。 PermitEmptyPasswords :是否允许密码为空的用户远程登录。默认为“no”。 PermitRootLogin :是否允许root登录。可用值如下:“without-password”表示使用密码认证登录。“forced-commands-only”表示只有指定了command选项的情况下允许使用公钥认证登录。同时其它认证方法全部禁止。这个值常 用语远程备份之类的事情。(为了安全:不允许root用户登录,但可以登录普通用户使用sudo来执行相应的root命令) UseDNS :指定sshd是否应该对远程主机名进行方向解析,以检查此主机名是否与其IP地址真实对应。默认值为“yes”。
在SSH服务中含有有SCP远程拷贝服务: SCP为远程拷贝文件或目录的命令(命令介绍): -P(大写) :接接口号,SSH默认端口为22,如果端口为22可以省略。 -r :递归,表示拷贝目录。 -p(小写) :表示在拷贝前后保存文件或目录属性。 -l :(limit)限速。
例子: scp -P22 -rp /etc [email protected]:/tmp 也可实现rsync的推拉操作(例子): 推:scp -P22 -rp /etc [email protected]:/tmp 拉:scp -P22 -rp [email protected]:/tmp/etc /data 限速:scp -P22 -rp -l 10 /etc [email protected]:/tmp
scp小结: 1、scp是加密的远程拷贝,而cp仅为本地拷贝。 2、可以把数据从一台机器推到另一台机器,也可以从其它服务器吧数据拉回到本地执行命令执行命令。 3、每次都是全量完整拷贝,因此,效率不高,适合一次性拷贝用,如果需要增量拷贝,用rsync。
SSH服务附带的sftp功能服务 winds客户端与linux服务器之间的传输数据工具: 1、rz、sz(lrzsz) 2、winscp WinSCP-4.0.5(基于SSH,SFTP) 3、SFX(xshell) 4、SFTP(基于SSH,加密传输) 5、samba,http,ftp,nfs FTP工具:vsftp、proftpd、SFTP
sftp客户端连接sftp服务方法(不安全): 1、sftp -oPort=22 [email protected] #l连接端口 2、cd /home/oldboy #可以切换指定的目录 3、put /etc/hosts #把/etc/hosts客户端本地传输到sftp服务器当前连接的目录 4、mkdir /tmp/ett #也可以创建目录 5、get /etc/hosts /home #可以下载文件(不指定位置默认下载到原登录时的目录位置)
使用密钥认证的方法步骤: 1、生成密钥(建议在普通用户下生成为了安全): ssh-keygen -t rsa
2、将公钥发送给需要配置密钥的用户(该命令只能发送“公钥=锁”“私钥=钥匙”) ssh-copy-id -i .ssh/id_rsa.pub "-p52113 [email protected]"
3、启动公钥认证: 修改配置文件/etc/ssh/sshd_config,将“PasswordAuthentication yes”修改为“PasswordAuthentication no”。 4、测试(不用密码发送表示成功): scp -P52113 hosts [email protected]:~ #端口号我改成了52113,原先以及拷贝了hosts放在家目录中
5、为了安全在普通用户中操作但是没有权限,所有配给该用户sudo的权限
6、跳转到names用户,然后执行命令测试 ssh -p52113 -t [email protected] sudo rsync ~/hosts /etc/hosts #执行完后,我操作的/etc/hosts,但原先已经拷贝到了家目录,所有直接传递 -t参数是sudo命令需要tty终端;而默认ssh没有;所有ssh加 -t参数分配一个终端sudo的取消默认指向一个终端的命令,如果不想加-t参数可以直接把Defaults requiretty参数注释掉(为了安全不建议)。路径/etc/sudoers 非交互式传输:
第一步:安装expect、添加用户及创建密码 yum install expectuseradd oldboy2echo "oldboy"|passwd --stdin oldboy2id oldboy2su - oldboy2
第二步:创建密钥echo -e "\n"|ssh-keygen -t dsa -P ''
第三步:在管理机编辑 vim ssh_expect.exp添加如下代码***************************************************#!/usr/bin/expectif { $argc != 2 } { send_user "usage: expect ssh_expect.exp file host\n" exit}
#define varset file [lindex $argv 0]set host [lindex $argv 1]set password "oldboy"#spawn scp /etc/hosts [email protected]:/etc/hosts#spawn scp -P52113 $file oldboy@$host:$dirspawn ssh-copy-id -i $file "-p 52113 oldboy2@$host"expect { "yes/no" {send "yes\r";exp_continue} "*password" {send "$password\r"}}expect eof
exit -onexit { send_user "good bye"}
***************************************************第四步:推送公钥expect ssh_expect.exp ~/.ssh/id_dsa.pub 172.16.1.31
以上服务小结: 1、ssh为加密的远程连接协议。相关软件有openssh、openssl。 2、默认端口号为22. 3、服务端ssh远程连接服务,sftp服务,sshd后湖进程,开机要自启动。 4、ssh客户端包含ssh、scp、sftp命令 5、ssh安全验证方式:口令和密钥,这两种都是基于口令和ssh密钥登录的原理。 6、ssh服务安全优化,修改默认端口22,禁止root远程连接,禁止dns,SSH只监听内网IP。 7、ssh密钥对,公钥在服务器端,比喻就是锁头,私钥在客户端,比喻就是钥匙。 |
CopyRight 2018-2019 实验室设备网 版权所有 |