Linux服务器之SSH
SSH
1、ssh是安全的加密协议,用于远程连接linux服务器。
2、ssh默认端口是22,安全协议版本ssh2。
3、ssh服务端主要包含两个服务功能ssh远程连接,sftp服务。
4、linux ssh客户端包含ssh远程连接命令,以及远程拷贝scp命令等。
SSH服务认证类型
基于口令的安全验证
- [root@server ~]# ssh -p22 root@192.168.31.132
- The authenticity of host '192.168.31.132 (192.168.31.132)' can't be established.
- RSA key fingerprint is a0:60:7f:c8:e1:2c:d4:3b:2c:63:b7:3d:66:ad:f2:18.
- Are you sure you want to continue connecting (yes/no)? yes
- Warning: Permanently added '192.168.31.132' (RSA) to the list of known hosts.
- root@192.168.31.132's password:
- Last login: Mon Feb 6 13:33:19 2017 from 192.168.31.1
- [root@backup ~]#
ssh连接远程主机命令的基本语法:
-p接端口,默认22端口
@前面为用户名
@后面为要连接的服务器ip
- [root@server ~]# cat ~/.ssh/known_hosts
- 192.168.31.132 ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAzH2jCItapPoUp5IKjVNtNOfXM5FmPQ3i27SjDQzzblL2vVaqAzfA10IsHw/QLfUbBpVERmbxZMW1SRrdcxXOWPFatuYmZMJDja4gi2FstEVxvV+ozelhuxEF9khZEYJHndfh5jqBXOYAe6NXOhY6rheEUmao3Wi5FLqdQ9cE0PBfI7SEn6dWCZ5dTJ76qtyLbctTmHC/tgCi3bqmrMR+hCH+PoiHYitEztwXAEWYxAka0d0ET96Z19DMDF9ai8YsrfAH/BgRiAoeUgNhtc/LrmVKWSeeHk15UvvY8Ba2nzI1jYkVH2UOROYn4jnYhSlY7cI7umdkU5LflGvrHmfJcQ==
ssh总结:
1、切换到别的机器上ssh -p52113 user@ip。
2、到其他机器执行命令(不会切换到别的机器上)ssh -p 52113 user@ip 命令(全路径)。
3、当第一次ssh连接的时候,本地会产生一个密钥文件~/.ssh/known_hosts(多个密钥)。
基于密钥的安全验证
事先建立一对密钥对,然后把公用密钥(public key)放在需要访问的目标服务器上,另外,还需要把私有密钥(private key)放到ssh的客户端对应的客户端服务器上。
根据端口号(111)查出对应的服务:
lsof -i:111
netstat -lntup|grep 111
根据进程名(sshd)查出对应的端口号:
netstat -lntup|grep sshd
更改默认ssh登录配置
- #更改前备份
- cp /etc/ssh/sshd_config /etc/ssh/sshd_config.ori
- vi /etc/ssh/sshd_config
- Port 52113 #默认22端口,为了提高安全级别建议修改
- PermitRootLogin no #root超级用户禁止远程登录
- PermiEmptyPasswords no #禁止空密码登录
- UseDNS no #不使用DNS
- GSSAPIAuthenication no
ssh客户端附带的远程拷贝scp命令
- [root@server ~]# scp -P22 -r -p /etc root@192.168.31.132:/tmp
- root@192.168.31.132's password:
- system-release-cpe 100% 25 0.0KB/s 00:00
- K89rdisc 100% 1513 1.5KB/s 00:00
-P(大写)接端口。
-r递归,表示拷贝目录。
-p表示在拷贝前后保持文件或目录属性
-l limit限制速度
scp总结:
1、scp是加密的远程拷贝,cp仅为本地拷贝。
2、可以把数据从一台机器推送到另一台机器,也可以从其它服务器把数据拉回到本地执行命令的服务器。
3、每次都是全量完整拷贝,因此,效率不高,适合第一次拷贝用,如果需要增量拷贝用rsync。
sftp
1、linux下连接命令sftp -oPort=22 root@192.168.31.132
2、上传put加客户端本地路径put /etc/hosts,也可以指定路径上传put /etc/hosts /tmp。
3、下载get服务端的内容get hosts,linux下载到本地连接前的目录,也可以指定下载路径get /etc/hosts /tmp。
4、连接的远端家目录为默认目录,也可以切换到其他有权限的目录下。
批量分发文件、执行命令
配置ip主机名
- [root@server ~]# cat /etc/hosts
- 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
- ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
- 192.168.31.128 server
- 192.168.31.134 lnmp
- 192.168.31.133 lamp
- 192.168.31.132 backup
IT公司企业级批量分发、管理方案
1、中小企业基本sshkey密钥的方案。
2、门户网站sina puppet(复制、太重)。
3、赶集、小米saltstack批量管理(轻量)。
创建用户oldgirl,密码system
- [root@backup data]# useradd oldgirl
- [root@backup data]# echo system|passwd --stdin oldgirl
- Changing password for user oldgirl.
- passwd: all authentication tokens updated successfully.
创建公私钥
- [root@server data]# su - oldgirl
- [oldgirl@server ~]$ ssh
- ssh ssh-agent sshd ssh-keyscan
- ssh-add ssh-copy-id ssh-keygen
- [oldgirl@server ~]$ ssh-keygen -t dsa #dsa
- Generating public/private dsa key pair.
- Enter file in which to save the key (/home/oldgirl/.ssh/id_dsa): #存放密钥的路径
- Created directory '/home/oldgirl/.ssh'.
- Enter passphrase (empty for no passphrase):
- Enter same passphrase again:
- Your identification has been saved in /home/oldgirl/.ssh/id_dsa.
- Your public key has been saved in /home/oldgirl/.ssh/id_dsa.pub.
- The key fingerprint is:
- 5a:64:22:18:c1:4c:70:ea:dd:64:9d:82:81:0b:99:07 oldgirl@server
- The key's randomart image is:
- +--[ DSA 1024]----+
- |EO*o |
- |+++oo . . |
- |o.o..+.oo |
- |... +..+ |
- | . . . S |
- | o |
- | . |
- | |
- | |
- +-----------------+
- [oldgirl@server ~]$ ls -l .ssh/
- total 8
- -rw-------. 1 oldgirl oldgirl 668 Feb 7 09:41 id_dsa #私钥
- -rw-r--r--. 1 oldgirl oldgirl 604 Feb 7 09:41 id_dsa.pub #公钥
分发公钥
- [oldgirl@server ~]$ ssh-copy-id -i .ssh/id_dsa.pub oldgirl@182.168.31.134 #默认22端口
- ssh: connect to host 182.168.31.134 port 22: Connection refused
- [oldgirl@server ~]$ ssh-copy-id -i .ssh/id_dsa.pub oldgirl@192.168.31.134
- The authenticity of host '192.168.31.134 (192.168.31.134)' can't be established.
- RSA key fingerprint is c1:0f:e0:45:05:79:c9:f0:48:d3:2f:6b:dc:66:6a:fe.
- Are you sure you want to continue connecting (yes/no)? yes
- Warning: Permanently added '192.168.31.134' (RSA) to the list of known hosts.
- oldgirl@192.168.31.134's password:
- Now try logging into the machine, with "ssh 'oldgirl@192.168.31.134'", and check in:
- .ssh/authorized_keys
- to make sure we haven't added extra keys that you weren't expecting.
- [root@lnmp ~]# su - oldgirl
- [oldgirl@lnmp ~]$ ls -l .ssh/
- total 4
- -rw-------. 1 oldgirl oldgirl 604 Feb 7 09:49 authorized_keys #权限600,名字改变
如果不是22端口(52113端口):ssh-copy-id -i .ssh/id_dsa.pub "-P 52113 oldgirl@192.168.31.134"
- [oldgirl@server ~]$ ssh-copy-id -i .ssh/id_dsa.pub oldgirl@192.168.31.133
- [oldgirl@server ~]$ ssh-copy-id -i .ssh/id_dsa.pub oldgirl@192.168.31.132
测试免密查询ip
- [oldgirl@server ~]$ ssh -P22 oldgirl@192.168.31.134 /sbin/ifconfig eth0
- eth0 Link encap:Ethernet HWaddr 00:0C:29:03:06:08
- inet addr:192.168.31.134 Bcast:192.168.31.255 Mask:255.255.255.0
- inet6 addr: fe80::20c:29ff:fe03:608/64 Scope:Link
- UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
- RX packets:4867 errors:0 dropped:0 overruns:0 frame:0
- TX packets:585 errors:0 dropped:0 overruns:0 carrier:0
- collisions:0 txqueuelen:1000
- RX bytes:473730 (462.6 KiB) TX bytes:91553 (89.4 KiB)
分发文件
- [oldgirl@server ~]$ cp /etc/hosts .
- [oldgirl@server ~]$ ls
- hosts
- [oldgirl@server ~]$ scp -P22 hosts oldgirl@192.168.31.133:~
- hosts 100% 243 0.2KB/s 00:00
- [root@lamp ~]# ls /home/oldgirl/
- hosts
编写批量分发脚本
- [oldgirl@server ~]$ cat fenfa.sh
- scp -P22 hosts oldgirl@192.168.31.132:~
- scp -P22 hosts oldgirl@192.168.31.133:~
- scp -P22 hosts oldgirl@192.168.31.134:~
- [oldgirl@server ~]$ sh fenfa.sh
- hosts 100% 243 0.2KB/s 00:00
- hosts 100% 243 0.2KB/s 00:00
- hosts 100% 243 0.2KB/s 00:00
- [oldgirl@server ~]$ cat fenfa.sh
- #!/bin/sh
- for n in 132 133 134
- do
- scp -P22 hosts oldgirl@192.168.31.$n:~
- done
- [oldgirl@server ~]$ cat fenfa.sh
- #!/bin/sh
- . /etc/init.d/functions
- for n in 132 133 134
- do
- scp -P22 1oldgirl@192.168.31.1oldgirl@192.168.31.n:~ &>/dev/null
- if [ $? -eq 0 ]
- then
- action "fenfa $1 ok" /bin/true
- else
- action "fenfa $1 error" /bin/false
- fi
- done
- [oldgirl@server ~]$ sh fenfa.sh hosts
- fenfa hosts ok [ OK ]
- fenfa hosts ok [ OK ]
- fenfa hosts ok [ OK ]
- [oldgirl@server ~]$ cp /server/scripts/inotify.sh .
- [oldgirl@server ~]$ sh fenfa.sh inotify.sh
- fenfa inotify.sh ok [ OK ]
- fenfa inotify.sh ok [ OK ]
- fenfa inotify.sh ok [ OK ]
- [oldgirl@server ~]$ cat fenfa.sh
- #!/bin/sh
- . /etc/init.d/functions
- if [ $# -ne 1 ]
- then
- echo "USAGE:$0 {FILENAME|DIRNAME}"
- exit 1
- fi
- for n in 132 133 134
- do
- scp -P22 -r 1oldgirl@192.168.31.1oldgirl@192.168.31.n:~ &>/dev/null
- if [ $? -eq 0 ]
- then
- action "fenfa $1 ok" /bin/true
- else
- action "fenfa $1 error" /bin/false
- fi
- done
- [oldgirl@server ~]$ sh fenfa.sh
- USAGE:fenfa.sh {FILENAME|DIRNAME}
- [oldgirl@server ~]$ cp -r /data/ .
- [oldgirl@server ~]$ sh fenfa.sh data/
- fenfa data/ ok [ OK ]
- fenfa data/ ok [ OK ]
- fenfa data/ ok [ OK ]
- [oldgirl@server ~]$ cat view.sh
- #!/bin/sh
- if [ $# -ne 1 ]
- then
- echo "USAGE:$0 COMMAND"
- exit 1
- fi
- for n in 132 133 134
- do
- ssh -p22 oldgirl@192.168.31.nn1
- done
- [oldgirl@server ~]$ sh view.sh
- USAGE:view.sh COMMAND
- [oldgirl@server ~]$ sh view.sh "cat /etc/redhat-release"
- CentOS release 6.6 (Final)
- CentOS release 6.6 (Final)
- CentOS release 6.6 (Final)
ssh批量分发与管理
1、利用root做ssh key验证。
优点:简单、易用。
缺点:安全差,同时无法禁止root远程连接这个功能。
2、利用普通用户(推荐)
先把分发的文件拷贝到服务器用户家目录,然后sudo提权拷贝分发的文件。
优点:安全。无需停止root远程连接这个功能。
缺点:配置比较复杂。
3、设置suid对固定命令
优点:相对安全
缺点:复杂,安全性较差。任何人都可以处理带有suid权限的命令。
- [root@lnmp ~]# echo 'oldgirl ALL=(ALL) NOPASSWD:/usr/bin/rsync' >>/etc/sudoers
- [root@lnmp ~]# visudo -c
- /etc/sudoers: parsed OK
- [root@lnmp ~]# grep oldgirl /etc/sudoers
- oldgirl ALL=(ALL) NOPASSWD:/usr/bin/rsync
- [oldgirl@server ~]$ scp -P22 -r hosts oldgirl@192.168.31.133:~
- hosts 100% 255 0.3KB/s 00:00
- [oldgirl@server ~]$ ssh -t oldgirl@192.168.31.133 sudo rsync hosts /etc/
- Connection to 192.168.31.133 closed.
- [oldgirl@server ~]$ cat fenfa_good.sh
- #!/bin/sh
- . /etc/init.d/functions
- if [ $# -ne 2 ]
- then
- echo "USAGE:$0 {FILENAME|DIRNAME} REMOTEDIR"
- exit 1
- fi
- for n in 132 133 134
- do
- scp -P22 -r 1oldgirl@192.168.31.1oldgirl@192.168.31.n:~ &>/dev/null &&\
- ssh -t oldgirl@192.168.31.nsudorsyncnsudorsync1 $2
- if [ $? -eq 0 ]
- then
- action "fenfa $1 ok" /bin/true
- else
- action "fenfa $1 error" /bin/false
- fi
- done
- [oldgirl@server ~]$ sh fenfa_good.sh
- USAGE:fenfa_good.sh {FILENAME|DIRNAME} REMOTEDIR
- [oldgirl@server ~]$ sh fenfa_good.sh hosts /etc/
- Connection to 192.168.31.132 closed.
- fenfa hosts ok [ OK ]
- Connection to 192.168.31.133 closed.
- fenfa hosts ok [ OK ]
- Connection to 192.168.31.134 closed.
- fenfa hosts ok [ OK ]
- [root@lnmp ~]# ll `which rsync`
- -rwxr-xr-x. 1 root root 414968 Apr 30 2014 /usr/bin/rsync
- [root@lnmp ~]# chmod 4755 /usr/bin/rsync
- [root@lnmp ~]# ll `which rsync`
- -rwsr-xr-x. 1 root root 414968 Apr 30 2014 /usr/bin/rsync
企业级生产场景批量管理,自动化管理方案:
1、最简单最常见shh key,功能最强大的。一般中小型企业会用,50—100台以下。
2、门户级别puppet批量管理工具。
3、saltstack批量管理工具。
4、http+cron
批量管理路线:sshkeyàpuppetàsaltstack/ansible。
Linux服务器之SSH的更多相关文章
- linux服务器之LVS、Nginx和HAProxy负载均衡器对比
linux服务器之LVS.Nginx和HAProxy负载均衡器对比. LVS特点: 1.抗负载能力强,使用IP负载均衡技术,只做分发,所以LVS本身并没有多少流量产生: 2.稳定性.可靠性好,自身 ...
- linux服务之ssh
架构:c/s 开发语言:c语言 服务器端:在linux平台下部署 客户端:一般是cli界面下的ssh命令 官网:http://www.openssh.com/portable.html 25个必须记住 ...
- XPS1330 作为Linux服务器之安装配置计划
# Task 状态 完成时间 备注 博文链接 1. 打通SSH 未开始 -- 安装系统后已经具备 -- 2. 打通FTP 未开始 -- 安装系统后已经具备 -- 3. ...
- linux服务搭建----ssh服务开启
//ssh 服务 ssh 192.168.88.254 如何开启 service sshd restart 关掉该服务 servicesshd stop ...
- java-代码操作服务器之SSH连续发送命令
java操作Linux服务器可以使用专用的jar包,这里介绍使用jsch操作Linux服务器 maven 依赖 <dependency> <groupId>com.jcraft ...
- 网安等保-Linux服务器之最新Ubuntu-22.04-LTS系统内核优化与安全加固配置脚本使用分享
关注「WeiyiGeek」公众号 设为「特别关注」每天带你玩转网络安全运维.应用开发.物联网IOT学习! 希望各位看友[关注.点赞.评论.收藏.投币],助力每一个梦想. 本章目录 目录 0x00 前言 ...
- linux服务器之redis
linux环境下安装redis服务器: redis下载地址:http://redis.io/download $ wget http://download.redis.io/releases/redi ...
- linux服务器之LVS、Nginx和HAProxy负载均衡器对比总结
LVS特点: 1.抗负载能力强,使用IP负载均衡技术,只做分发,所以LVS本身并没有多少流量产生: 2.稳定性.可靠性好,自身有完美的热备方案:(如:LVS+Keepalived) 3.应用范围比较广 ...
- 将代码托管到github服务器之SSH验证
内容中包含 base64string 图片造成字符过多,拒绝显示
随机推荐
- 关于sql查询结果集的链接
开通博客有一段时间了,第一次博文.本身是个理工科的,没啥文采,就想着把平时遇到的问题记录下来,防止自己以后忘了还要去翻找. 今天看到同事写的代码,查询两张表里的数据,结果集类型是一样的.写了两条查询, ...
- PHP面向对象编程(1)基础
一.面向对象OOP(Oriented Object Programming) 面向过程的编程 将要实现的功能描述为一个从一开始到结束的连续的“步骤(过程)”. 一次逐步完成这些步骤.如果步骤比较大,又 ...
- day 63 Django基础九之中间件
Django基础九之中间件 本节目录 一 前戏 二 中间件介绍 三 自定义中间件 四 中间件的执行流程 五 中间件版登陆认证 六 xxx 七 xxx 八 xxx 一 前戏 我们在前面的课程中已经学 ...
- 怎么选取训练神经网络时的Batch size?
怎么选取训练神经网络时的Batch size? - 知乎 https://www.zhihu.com/question/61607442 深度学习中的batch的大小对学习效果有何影响? - 知乎 h ...
- 分数调查 HihoCoder - 1515
小Hi的学校总共有N名学生,编号1-N.学校刚刚进行了一场全校的古诗文水平测验. 学校没有公布测验的成绩,所以小Hi只能得到一些小道消息,例如X号同学的分数比Y号同学的分数高S分. 小Hi想知道利用这 ...
- 第 8 章: 模块, 包与分发---Word
第八章: 模块, 包 与 分发 描述: 大型Python程序以模块和包的形式组织.另外,Python标准库中包含大量模块.本章详细介绍模块和包系统.还将提供有关如何安装第三方模块和分发源代码的信息. ...
- 怎么把myeclipse项目导入IDEA中
先把myeclipse下的项目拷贝到IDEA的部署目录中,把一些不用的配置文件删除,只留下一个干净的项目 打开IDEA,点击import Project,引入一个项目,选择IDEA部署目录下刚拷贝过去 ...
- sql中比较大小
if object_id('tempdb..#dataOldNew1') is not null drop table #dataOldNew1 select distinct store_cd ,i ...
- TypeError: cannot perform reduce with flexible type
想要解决这个错误,最好先明白numpy数据类型的dtype转换 生成一个浮点数组 a=np.random.random(4) 输出 a array([0.0945377,0.52199916,0.62 ...
- mysql之面试问题总结
问题1.char 与varchar的区别? varchar是变长而char的长度是固定的.如果你的内容是固定的大小,char性能更好. char[4] 与varchar[4] 存储字母a a占一个 ...