shell命令--ssh
shell命令--ssh
0、ssh命令的专属图床
点此快速打开文章【图床_shell命令ssh】
1、ssh命令的功能说明
ssh
命令是安全的加密协议,用于远程连接Linux
服务器,默认端口是22
SSH
(远程连接工具)连接原理:ssh
服务是一个守护进程(demon
),系统后台监听客户端的连接,ssh
服务端的进程名为sshd
,负责实时监听客户端的请求(IP 22端口),包括公共秘钥等交换等信息。
ssh
服务端由2部分组成: openssh(提供ssh
服务) openssl(提供加密的程序)
ssh
的客户端可以用XSHELL
,Securecrt
,Mobaxterm
等工具进行连接SSH的工作机制
服务器启动的时候自己产生一个密钥(768bit公钥),本地的ssh客户端发送连接请求到ssh服务器,服务器检查连接点客户端发送的数据和IP地址,确认合法后发送密钥(768bits)给客户端,此时客户端将本地私钥(256bit)和服务器的公钥(768bit)结合成密钥对key(1024bit),发回给服务器端,建立连接通过key-pair数据传输。
SSH的加密技术
加密技术:传输过程,数据加密。
1.SSH1没有对客户端的秘钥进行校验,很容易被植入恶意代码
2.SSH2增加了一个确认联机正确性的Diffe_Hellman机制,每次数据的传输,Server都会检查数据来源的正确性,避免黑客入侵。
SSH2支持RSA和DSA密钥
DSA:digital signature Algorithm 数字签名
RSA:既可以数字签名又可以加密SSH知识小结
1.SSH是安全的加密协议,用于远程连接Linux服务器
2.SSH的默认端口是22,安全协议版本是SSH2
3.SSH服务器端主要包含2个服务功能SSH连接和SFTP服务器
4.SSH客户端包含ssh连接命令和远程拷贝scp命令等
如何防止SSH登录入侵
1.密钥登录,更改端口
2.牤牛阵法
3.监听本地内网IP(ListenAddress 192.168.25.*)
2、ssh命令的语法格式
SYNOPSIS ssh [-1246AaCfGgKkMNnqsTtVvXxYy] [-b bind_address] [-c cipher_spec] [-D [bind_address:]port] [-E log_file] [-e escape_char] [-F configfile] [-I pkcs11] [-i identity_file] [-J [user@]host[:port]] [-L address] [-l login_name] [-m mac_spec] [-O ctl_cmd] [-o option] [-p port] [-Q query_option] [-R address] [-S ctl_path] [-W host:port] [-w local_tun[:remote_tun]] [user@]hostname [command]
3、ssh命令的选项说明
usage: ssh [-1246AaCfGgKkMNnqsTtVvXxYy] [-b bind_address] [-c cipher_spec] [-D [bind_address:]port] [-E log_file] [-e escape_char] [-F configfile] [-I pkcs11] [-i identity_file] [-J [user@]host[:port]] [-L address] [-l login_name] [-m mac_spec] [-O ctl_cmd] [-o option] [-p port] [-Q query_option] [-R address] [-S ctl_path] [-W host:port] [-w local_tun[:remote_tun]] [user@]hostname [command]
4、ssh命令的实践操作
范例1:Xshell 远程登陆主机
ssh root@10.0.0.99 22 -->默认端口就是22,这里演示端口号位置 ssh root@10.0.0.99
范例2:一个主机远程登陆其它主机
ip a|awk -F '[ /]+' '$NF~/eth0/ {print $3}' ip a|awk -F '[ /]+' '$NF~/eth0/ {print $3}' ssh 10.0.0.199 ssh -p 22 root@10.0.0.199
范例3:直接执行命令,最好全路径
ssh 10.0.0.199 /bin/ls ssh 10.0.0.199 hostname hostname
范例4:查看已知主机
cat /root/.ssh/known_hosts
范例5:关于后台ssh服务的相关
查询openssl软件
rpm -qa openssh openssl
查询sshd进程和端口
ps -ef | grep ssh
查看ssh端口
netstat -lntup |grep ssh ss | grep ssh netstat -a | grep ssh netstat -lnt | grep 22 netstat -lntup | grep ssh | wc -l -->只要大于2个就是ssh服务就是好的
查看ssh的秘钥目录
ll /root/.ssh/known_hosts -->当前用户家目录的.ssh目录下
ssh的配置文件
egrep -v '^$|#' /etc/ssh/sshd_config
范例6:免秘钥登陆,登录的时候不用使用密码
生成密钥对
ssh-keygen -->-->连续回车 ssh-keygen -t dsa -->也可指定验证方式,使用-t参数 Your identification has been saved in /root/.ssh/id_rsa. -->私钥位置 Your public key has been saved in /root/.ssh/id_rsa.pub. -->公钥位置
RSA
与DSA
加密算法的区别
RSA
:是一种加密算法(PS:RSA
也可以进行数字签名的),它的简写的来由是Ron Rivest
、Adi Shamir
和Leonard Adleman
这三个人姓氏的第一个字母连接起来就是RSA。DSA
:就是数字签名算法的英文全称的简写,即Digital Signature Algorithm
,简写就是DSA
,
RSA
既可以进行加密,也可以进行数字签名实现认证,而DSA
只能用于数字签名从而实现认证。也可以免交互快速生成密钥对
ssh-keygen --help -->查看用法 mv /root/.ssh/* /tmp -->将之前产生的密钥对移走 ssh-keygen -t rsa -f /root/.ssh/id_rsa -P "" -q -->免交互产生密钥对 ls /root/.ssh
拷贝密钥中的公钥文件到目标主机上
ssh-copy-id -i ~/.ssh/id_rsa.pub 10.0.0.199 -->输入yes和目标主机root密码 scp -rp ~/.ssh/id_rsa.pub 10.0.0.199:~/.ssh/authorized_keys -->也可以使用scp命令 ls -ld ~/.ssh/ -->特别注意权限700 ls -l ~/.ssh/ -->特别注意权限600
也可免交互拷贝公钥
rpm -qa sshpass yum -y install sshpass &>/dev/null -->使用此工具 rpm -qa sshpass sshpass -p123456 ssh-copy-id -i ~/.ssh/id_rsa.pub 10.0.0.199 "-o StrictHostKeyChecking=no" -->参数-p是可加密码
开始测试是否免秘钥
ssh 10.0.0.199 ifconfig eth0
开发脚本实现批量管理服务器简单思路
cat >cmd.sh <<'EOF' for n in 199 do echo "=====10.0.0.$n======" ssh 10.0.0.$n "$1" done EOF sh cmd.sh hostname
『MineGi有话说』:快来扫一扫下面链接的二维码,加入我们吧!
您的资助是我最大的动力!
金额随意,欢迎来赏!