ssh远程控制

1.什么是SSH

ssh是一种网络协议,用于计算机之间的加密登录

2.配置OpenSSH 服务端

OpenSSH服务器由 openssh , openssh-server等软件包提供(默认已安装),并已添加为标准系统服务。

配置文件:

/etc/ssh/sshd_config

服务监听选项:

port 22    //监控端口为22(默认)

protocol 2    //使用ssh v2协议

listenAddress 192.168.1.1.55    //监听地址为192.1681.55

UseDNS no    //禁用DNS反向解析

#service sshd reload    //重新载入

用户登录控制:

sshd默认允许root登录,但是在internet中为了安全应该禁止root登录,先用普通用户登录到服务器,再su 到root权限。

sshd服务用户登录限制:

1). 禁止root用户,或密码为空的用户登录

2). 限制登录验证时长(默认为2分钟)

3). 限制用户重复登录次数。

vim /etc/ssh/sshd_config

PermitRootLogin on        //禁止root用户登录

PermitEmptyPasswords on        //禁止空密码用户登录

LoginGraceTime 2m        //用户登录验证时长

MaxAuthTries 6        //最大重复登录次数

service sshd reload

允许,拒绝某个用户,从某个IP登录,允许和拒绝不能同时出现

AllowUsers 用户@IP           //允许登录

DenyUsers 用户@IP        //拒绝登录

例:

只允许dyq和zhangsan从192.168.1.0网段登录(多用户间用空格分隔)

AllowUsers [email protected] zhangsan        //多用户之间用空格分隔

#service sshd reload

登录验证方式:

1)。密码登录验证:比较简单的方法,通过本地的密码就可以登录服务器。

2)。密钥登录验证:生成公钥私钥的方法来验证登录。公钥保存需要保存在客户机端。

一般两种验证方式同时开启,系统会优先选择秘钥验证的方法登录。在安全级别比较高的服务器上要一般只开秘钥验证方式。

怎么生成公钥私钥,后面讲。

#vim /etc/ssh/sshd_config

PasswordAuthentication yes        //启动密码验证

PubkeyAuthentication yes        //启用秘钥验证

AuthorizedKeysFile  .ssh/authorized_keys        //指定公钥库数据文件

#service sshd reload

3.客户端(clients)连接方式

两种远程连接方式,一种是通过命令连接(命令界面常用),另一种是通过客户端连接(win常用)

命令连接服务端

ssh远程登录

格式:

ssh [-p port] [email protected]address

如果端口不是默认的22端口的话,则需要用到参数 -p 制定端口。

例:

ssh -p 50022 [email protected]

回车后会提示接收来自服务器的秘钥,输入yes选择接收,然后输入密码就可以登录了。

scp远程复制

scp命令可以吧本地的文件复制到远程服务器上,或把服务器上的文件复制到本地来。

复制文件报错解决:

***linux/bash__scp__command_not_found_lost_connectionwentijiejue_15485_1347695526.html

格式:

scp -r [要复制的文件] [目标文件] -P

参数:

-r        //复制整个目录

-P(大写)        //指定端口

更多参数 man scp

例:服务器复制到本地

# scp -P 50022 [email protected]:/home/dyq/132 /root/123

本地复制到服务器,把顺序反过来就好了。

# scp -P 50022  /root/dd.sql [email protected]:/home/dyq

sftp 安全 FTP 

sftp是ssh协议中的一种,可以模拟FTP协议,输入密文传输比FTP协议要安全。

使用sftp命令连接服务器时,服务器必须开启FTP服务,否则无法连接。

格式:

sftp [email protected]

以上三种命令只是简单介绍,里面有更多的参数和形式要发掘,详细信息可以查询资料或者man帮助文档。

WIN上客户端连接远程服务这里就不多做叙述了。

4.构建密钥验证的SSH体系

概念:

密钥验证的形式比密码验证具有更高的安全性。这里要记住两个文件:id_rsa  是私钥;id_rsa.pub 是公钥。

密钥验证工作过程:

一步:生成公钥(id_rsa.pub)私钥(id_rsa)。

二步:上传公钥文件(id_rsa.pub)

三步:导入公钥信息,~/.ssh/authorized.keys

四步:公钥跟私钥验证。

1)。在客户端创建密钥对

linux中通过工具 ssh-keygen 可以生成密钥文件,密钥文件具有两种加密算法:RSA或DSA(使用任意一种就好)

格式:

ssh-keygen -t [加密算法RSA;DSA]

参数:

-t         //指定加密算法

更多参数:man ssh-keygen

例:遇到交互一般直接回车就好了。

确认密钥是否存在:

# ls -lh ~/.ssh

总用量 12K

-rw-------. 1 root root 1.7K 7月   6 15:33 id_rsa

-rw-r--r--. 1 root root  408 7月   6 15:33 id_rsa.pub

-rw-r--r--. 1 root root  402 7月   6 15:04 known_hosts

密钥要保存好,不要泄露给别人。

2)。将公钥上传到服务器

上传密钥可以通过多种方式(复制粘贴,FTP,samba,HTTP,email)下面用scp命令上传。

# scp -P 50022 ~/.ssh/id_rsa.pub [email protected]:/home/dyq/

[email protected]‘s password: 
id_rsa.pub            100%  408     0.4KB/s   00:00

3)。在服务器中导入公钥文件

密钥保存在~/.ssh/authorized_keys 文件中

操作:

# mkdir ~/.ssh        //没有.ssh文件,就要手动创建

# cat /home/dyq/id_rsa.pub >> ~/.ssh/authorized_keys      //重定向导入

# tail -l /home/dyq/.ssh/authorized_keys        //查看验证

由于默认采用严格的权限检测模式(StrictModes yes),因此要求 .ssh的权限只能有属主的权限,属组,其他用户,不能拥有权限,否则验证失败。

4)。在客户端使用密钥验证

当上三步部署成功以后就可以直接通过密钥验证的方式登录了。

5.TCP Wrappers 访问控制

linux系统中许多网络服务都有访问控制机制,如samba,Bind ,HTTPD,OpenSSH等。除此以外,网络边界中的防火墙,入侵检测等设备也都有强大的安全屏障。

概述:

TCP Wrappers 将其他的TCP服务程序“包裹”起来,增加安全检测过程。外来请求要通过验证才能访问服务,TCP Wrappers还可以记录所有企图访问被保护服务行为,为管理员提供丰富的安全分析资料。

通常linux已经预安装了tcp_wrappers服务。

查看:

# rpm -ql tcp_wrappers

/usr/sbin/safe_finger

/usr/sbin/tcpd

/usr/sbin/try-from

/usr/share/doc/tcp_wrappers-7.6

/usr/share/doc/tcp_wrappers-7.6/BLURB

/usr/share/doc/tcp_wrappers-7.6/Banners.Makefile

/usr/share/doc/tcp_wrappers-7.6/CHANGES

/usr/share/doc/tcp_wrappers-7.6/DISCLAIMER

/usr/share/doc/tcp_wrappers-7.6/README

/usr/share/doc/tcp_wrappers-7.6/README.IRIX

/usr/share/doc/tcp_wrappers-7.6/README.NIS

/usr/share/man/man8/safe_finger.8.gz

/usr/share/man/man8/tcpd.8.gz

/usr/share/man/man8/try-from.8.gz

注:

xinedtd 是一个特殊的服务管理程序,通常被称为超级服务器。xinetd通过在 /etc/xinetd.d 目录下为每一个被保护的程序建立一个配置文件,调用 tcp wrappers 机制来提供额外的访问控制保护。

TCP Wrappers 访问策略

TCP Wrappers 机制的保护对象为各种网络服务程序,针对访问服务的客户机地址进行访问控制。对应的两个策略文件为 /etc/hosts.allow   /etc/hosts.deny ,分别用来设置允许和拒绝的策略。

/etc/hosts.allow        //允许访问的客户机

/etc/hosts.deny        //拒绝访问的客户机

策略的配置格式:

两个文件的作用不同,但是配置格式相同。

格式:

<服务程序列表>: <客户机地址列表>

1)。服务程序列表:

all        //代表所有服务器

单个服务程序,如“vsftpd , httpd”

2)。客户机地址列表

all        //代表任何客户机地址

LOCAL        //代表本机地址

单个IP地址,例如“192.168.1.50”

网络段地址,例如“192.168.4.0/255.255.255.0”

以“.”开始的域名,例如: .365.com,匹配365.com域中的所有主机

以“.”结束的网络地址,例如:192.168.4.  ,匹配整个4.0网段

嵌入通配符 * , ? ,牵着代表任意长度字符,后者仅代表一个字符。例如:“10.0.8.2*”匹配以10.0.8.2开头的所有IP地址,不可与以“.” 开始或结束的模式混用。

多个客户机地址组成的列表,例如:192.168.1. , 172.17.17. , .365.com

访问控制的基本原则

关于TCP wrappers 机制的访问策略,应用时遵循以下顺序和原则。

(1).首先检查/etc/hosts.allow 文件,如果找到匹配的策略,则允许访问。

(2.)否则继续检查/etc/hosts.deny 文件,如果找到相匹配的策略,则拒绝访问。

(3.)如果检查上述两个文件都找不到相匹配的策略,则允许访问。

TCP Wrappers 配置实例

实际使用TCP Wrappers 机制时,较宽松的策略可以是“允许所有,拒绝个别”,较严格的策略是“允许个别,拒绝所有”。前者只需在hosts.deny文件中添加相应的拒绝策略就可以了;后者则需要在hosts.allow中添加允许策略以外,还需要在hosts.deny文件中设置“ALL:ALL”的拒绝策略。

例:

只希望从IP 地址为61.63.65.67 的主机或者位于 192.168.1.0/24 网段的主机访问sshd 服务,其他所有地址将被拒绝。

# vim /etc/hosts.allow

sshd:61.63.65.67,192.168.2.*

# vim /etc/hosts.deny

ssh:ALL

时间: 2024-11-02 09:18:08

ssh远程控制的相关文章

Jetson tk1 安装 CUDA,ROS,OpenCV和kinect2以及刷机以及ssh远程控制

我的jetson tk1的系统是:LTR21.3,ubuntu14.04.本文仅仅是个人总结,亲测成功. 注意:如果你是使用校园网进行安装的话,有很多源是没办法访问的,安装的时候就会出现很多问题,所以,尽量使用外网,或者可以挂个VPN也可以. 首先,先设置好ubuntu的源:https://zhidao.baidu.com/question/1767307265343477300.html(设置成图片那样,全部打勾). 然后,安装的过程中碰到依赖包(libxxx)无法安装的,可以尝试一下强制安装

ssh远程控制服务

ssh远程控制服务 简介 SSH 为 Secure Shell 的缩写,由 IETF 的网络工作小组(Network Working Group)所制定;SSH 为建立在应用层和传输层基础上的安全协议.SSH 是目前较可靠,专为远程登录会话和其他网络服务提供安全性的协议.利用 SSH 协议可以有效防止远程管理过程中的信息泄露问题.SSH最初是UNIX系统上的一个程序,后来又迅速扩展到其他操作平台.SSH在正确使用时可弥补网络中的漏洞.SSH客户端适用于多种平台.几乎所有UNIX平台-包括HP-U

SSH远程控制及访问

SSH远程控制及访问详解 SSH是一种安全通道协议,主要用来实现字符界面的远程登录.远程复制等功能.SSH 协议对通信双方的数据传输进行了加密处理,其中包括用户登录时输入的用户口令.与早期的 Telent.RSH.RCP等应用相比,SSH 协议提供了更好的安全性. 一.sshd基本配置 现在我们是使用的XShell与服务器连接的,那么sshd服务就应该是处于运行的,下面我们用"netstat -ntap | grep 22"命令进行查看. 下面我们进入sshd的配置文件多其中的一些配置

SSH2.0编程 ssh协议过程实现(转)

之前为了自己做一套SSH,先自己实现了一套telnet.但经过这么多天的苦逼,发现以前的工作都是徒劳.ssh的协议很繁杂,核心的内容在于密码算法,而且自己很难在网上找到周全的细节讲解与详细的实现,只有靠自己刷RFC和问大神还有就是靠强X我的服务器艰难地完成. 现计算了下时间,自己做SSH耗费了进两个月的时间,虽然期间也夹着其他的繁杂事物,但自己在这方面确是是耗费了非常大的精力.因为这方面详细资料的匮乏,自己以前也几乎没有接触过密码学方面的东西,很多只有靠自己摸索,所以我得经常拿我自己的服务器来做

SSH的基本操作

一. 登陆SSH远程控制服务器 我们以192.168.100.42服务器为例. SSH乱码: LANG="zh_CN.GB18030" export LANG=zh_CN.gb2312 编辑/etc/sysconfig/i18n 将LANG="zh_CN.UTF-8" 改为 LANG="zh_CN.GB18030" 可永久显示中文(永久显示为中文这个还没试过) 1.打开SSH 2.登陆服务器,输入服务器.地址账号,点击connect按钮 在服务器

SSH2.0编程 ssh协议过程实现

之前为了自己做一套SSH,先自己实现了一套telnet.但经过这么多天的苦逼,发现以前的工作都是徒劳.ssh的协议很繁杂,核心的内容在于密码算法,而且自己很难在网上找到周全的细节讲解与详细的实现,只有靠自己刷RFC和问大神还有就是靠强X我的服务器艰难地完成. 现计算了下时间,自己做SSH耗费了进两个月的时间,虽然期间也夹着其他的繁杂事物,但自己在这方面确是是耗费了非常大的精力.因为这方面详细资料的匮乏,自己以前也几乎没有接触过密码学方面的东西,很多只有靠自己摸索,所以我得经常拿我自己的服务器来做

Cisco 学会使用Telnet、SSH

实验目的:通过控制R1 后 , TELNET 到R2(12.1.1.2),R3(13.1.1.3)对R2,R3 进行远程管理. 在R1 上配置: R1#telnet 12.1.1.2 //从R1 TELNET 到R2 Trying 12.1.1.2 ... Open User Access Verification Password: R2> 按<Ctrl-Shift-6> + x 把界面切换回R1 R1#telnet 13.1.1.3 //从R1 TELNET 到R3 Trying 1

Linux的setup命令启动服务名称和功能

1 anacron 可执行crontab既定时间内没执行的工作.2 atd 单一使用的例行性命令.3 apmd 了解系统电池电量(手提式计算机使用).4 arpwatch 持续监测网络卡MAC与IP.5 autofs 自动挂载一些装置.6 cups 打印服务.7 chargen(tcp) 当客户发送一个数据报时,TCP服务器发送一串连续的字符流直到客户中断链接.8 chargen-udp UDP服务器发送一个随机长度数据报.9 crond 执行/etc/crontab中的例行性命令.10 day

Mac OS X上使用Wireshark抓包

Wireshark针对UNIX Like系统的GUI发行版界面采用的是X Window(1987年更改X版本到X11).Mac OS X在Mountain Lion之后放弃X11,取而代之的是开源的XQuartz(X11.app).因此,在Mac OS X上安装Wireshark之前,需要先下载安装XQuartz. 1.安装XQuartz XQuartz(XQuartz-2.7.6.dmg)安装完成后,按照提示需要注销重新登录,以使XQuartz作为默认的X11 Server. 安装成功后,在终