一、ssh服务介绍
1.ssh安全的加密协议用于远程连接服务器
2.默认端口是22,安全协议版本ssh2,它能同时支持RSA和DSA秘钥,SSH1只支持RSA
3.服务端主要包含两个服务功能ssh远程连接,SFTP服务
4.ssh客户端包含ssh连接命令,以及远程拷贝scp命令
5.SSH服务由 服务端软件OpenSSH 和客户端SSH(putty等)
6.Pivate key 和Public key 私钥和公钥
7.配置文件 /etc/ssh/sshd_config中有d表示服务端,没d代表客户端
8.ssh服务的认证类型:基于口令的安全验证,基于密钥的验证
9.lsof -i :22 或者netstat -lntup|grep 22 给你端口号,查询端口号有什么服务
10.ssh1.x原理图
相关博文:http://oldboy.blog.51cto.com/2561410/1300964
(ssh连接慢的解决办法)
http://phenixikki.blog.51cto.com/7552938/1546669
(ssh被篡改的经历)
10.ssh -p22 kaka@192.168.3.110 或者执行ssh root3@192.168.3.110 /sbin/ifconfig 该命令可以直接看访问ip的ifconfig#该命令用来连接远程机器,如果连接不上,要么端口不对,要么网络有问题,如果第一次连接的时候,本地会产生一个密钥 ~/.ssh/known_hosts(可以多个)
二、ssh 客户端附带的远程拷贝 scp介绍
scp (secure copy的缩写) (remote file copy program)
用法: scp -P22 1.txt root2@192.168.3.111:/mnt/3.txt
源 目标
[oldgirl@localhost ~]$ scp -P22 root2@.txt . root2@192.168.3.111's password: .txt % .0KB/s : [oldgirl@localhost ~]$ ll total -rwxrwxrwx. oldgirl oldgirl Jul : .txt -rwxrwxr-x. oldgirl oldgirl Jul : .txt
相关博文:
scp排错(Permission denied两例)http://www.360doc.com/content/13/0929/13/6496277_317840402.shtml
http://www.linuxidc.com/Linux/2015-11/125214.htm
三、ssh服务附带的sftp功能服务
1.sftp -oPort=22 root@192.168.11.1
上传put 加客户端本地路径,也可以指定路径上传,put /etc/hosts/tmp
下载get服务端的内容,下载到本地的当前目录
2.windows中的sftp用法
用的是SecureCRT客户端,点击页面的左上角的文件中的连接SFTP标签页,进入页面进行编辑,运用put "D:\1.txt”来上传文件,或者get "XX" get之后的路径在选项中的会话选项中的SFTP标签页中的目录。
SecureCRT客户端使用小技巧:http://blog.csdn.net/jinshuaiwang/article/details/40424039
四、批量分发
需求:要求所有服务器在同一用户oldboy系统用户下,实现A机器从本地分发数据到B机器上,在分发过程中不需要提示系统密码验证。除了分发还需要可以批量查看客户机上的CPU,LOAD,MEM,系统版本等使用信息。
1.ssh-keygen -t dsa 中-t参数指建立指建立密钥的类型,这里指建立dsa类型,也可以执行
ssh-keygen -t rsa 建立rsa类型
rsa和dsa的区别
rsa:是一种加密算法,是由Ron Rivest Adi shamir 和Leonard Adleman这三个人的名字的第一个字母组成
dsa:就是数字签名算法的英文全称的简写,即Digital Signature Algorithm
批量分发脚本:
#!/bin/sh ] then echo "USGE:/bin/sh $0 argl" exit fi for n in 110 111 do ssh -P22 oldboy@.$n $ done
2.公钥和私钥匙(图)
[oldboy@kaka ~]$ ll ~/ -al total drwx------. oldboy oldboy Jul : . drwxrwxrwx. oldgirl Jul : .. -rw-------. oldboy oldboy Jul : .bash_history -rw-r--r--. oldboy oldboy Feb .bash_logout -rw-r--r--. oldboy oldboy Feb .bash_profile -rw-r--r--. oldboy oldboy Feb .bashrc drwxr-xr-x. oldboy oldboy Nov .gnome2 drwxr-xr-x. oldboy oldboy Jun : .mozilla drwx------. oldboy oldboy Jul : .ssh [oldboy@kaka ~]$ ls -l .ssh/ total -rw-------. oldboy oldboy Jul : id_dsa #私钥 -rw-r--r--. oldboy oldboy Jul : id_dsa.pub #公钥 [oldboy@kaka ~]$ ls -ld .ssh/ drwx------. oldboy oldboy Jul : .ssh/ #权限700
3.分发公钥
ssh-copy-id -i .ssh/id_dsa.pub oldboy@192.168.3.110
如果是非默认端口:ssh-copy-id -i .ssh/id_dsa.pub "-p4355 oldboy@192.168.3.110"
4.成功结果
ssh oldboy@192.168.3.110 #直接登录不要密码
小结:
1.明白公钥私钥原理
2.ssh-copy-id 的原理:就是把.ssh/id_dsa.pub复制到192.168.3.110下面的.ssh目录(提前创建权限700),并且将名字改为authorized_keys(权限变为600)
3.免密码登录验证时单向的
4.基于用户的,最好不要跨不同的用户