访问方式

不加密文字界面:telnet、rsh
加密文字界面:SSH
图形界面:Xdmcp、RDP、VNC
SSH

SSH用来取代finger、R shell(rlogin、rcp、rsh)、telnet和taik等连接方式,它传输更安全
SSH默认提供了2个服务
ssh
sftp-server
SSH版本
V2比V1多了连线检测,防止线路插入攻击代码
SSH加密
密钥系统DSA、RSA和Diffie-Hellman在加解密速度和安全性方面各有不同
用户到服务器的双向加密传输过程
C -> S:C向S发送资料时,用S的公钥加密后发出,S收到后用自己的私钥解密
S -> C:S向C发送资料时,用C的公钥加密后发出,C收到后用自己的私钥解密
总的来说,公钥是用来加密,而私钥用来解密,私钥要掌握在自己手中用来解密用
SSH连接建立过程:
-S端产生公私钥。第一次启动时生成$keys所表示的三类加密系统算法的公钥和私钥文件,如果这些文件缺失,则在sshd服务重启后重新生成
$keys:/etc/ssh/ssh_host_xxx
-C端第一次与S端交互:C发送连接请求,收到S端发回来的公钥
-记录/比对S端的公钥,同时随机生成自己的密钥对
S端的公钥存放在C端的~/.ssh/known_hosts中
-C端将用S端公钥加密的自己公钥传给S端
-开始传输。C端向S端发送请求时用S端的公钥加密请求,S端收到请求后用自己的私钥解密并用C端的公钥加密响应,C端收到响应后用自己的私钥解密
启动SSH服务
service sshd start
ssh命令用法
ssh -f [-o option] [-p port] [username@]IP command
-f :结合command使用,让ssh命令执行结束,而command在远程主机后台运行
-o 选型
ConnectTimeout=N,N表示秒数
StrictHostKeyChecking=[yes|no|ask],默认是ask,而no则表示远程主机的公钥直接写入到本地~/.ssh/known_hosts,在脚本中非常好用
-p 指定非默认端口
举例:
ssh -f centos@127.0.0.1 find / &> ~/find1.log
rm ~/.ssh/known_hosts
ssh -o StrictHostKeyChecking=no centos@127.0.0.1 find
sftp交互式文件传输命令
传输指令
上传:put [本地文件或目录] [远程目录路径]
下载:get [远程目录或文件] [本地文件或目录]
支持通配符,如get *.bak
本地指令:开头带l
lpwd lmkdir lcd lls
远程指令:
pwd 
mkdir rename ln
rmdir rm 
cd ls 
chgrp chown chmod
exit bye quit
举例:
将本地的/etc/ssh/ssh_host*.pub上传到远程服务器的/tmp目录,并将远程服务器的.ssh/known_hosts下载到本地/tmp目录
sftp> pwd
sftp> cd /etc/ssh
sftp> ls
sftp> lpwd
sftp> lcd /tmp
sftp> get ssh_host*.pub
sftp> lls 
sftp> lcd /home/centos/.ssh/
sftp> cd /tmp
sftp> put known_hosts 
sftp> ls
scp非交互式文件传输命令,异地备份
上传:scp [-pr] [-l speed] file [username@]ip:path
下载:scp [-pr] [-l speed] [username@]ip:file path
-p 保留文件权限
-r 对目录递归处理
-l 速率,单位K/bit,800表示100K/B
举例:
将一个10M的文件备份到远程主机
dd if=/dev/zero of=10M.txt bs=1M count=10
scp 10M.txt root@127.0.0.1:/tmp
SSH的图形客户端
ssh客户端xshell使用举例
界面显示中文时常常出现乱码,怎么办?需要从三方面着手确保编码兼容
-文件内容编码
-shell环境编码(LANG变量)
-Xshell编码设置
常用设置
指定使用SSH V2登录
缓冲区大小 10000行
字体名、字体大小、编码
通过密钥认证实现ssh、scp以及sftp无密码登录
最快创建SSH互信的方式
-确保C端和S端家目录下没有.ssh目录
-在C端执行如下命令,交互过程一直按回车默认生成.ssh下的密钥对id_rsa和id_rsa.pub
ssh-keygen
-在C端执行如下命令将公钥传给S端
ssh-copy-id -i .ssh/id_rsa.pub root@127.0.0.1
最慢创建SSH互信的方式
在客户端生成密钥对并将公钥发送给服务器端
mkdir .ssh
touch .ssh/known_hosts
ssh-keygen
chmod 700 .ssh && chmod 600 .ssh/id_rsa && chmod 644 .ssh/{id_rsa.pub,known_hosts}
scp .ssh/id_rsa.pub root@127.0.0.1:/tmp
在服务器端设置号客户端公钥的文件名和权限即可
mkdir .ssh
cat /tmp/id_rsa.pub >> .ssh/authorized_keys
chmod 700 .ssh && chmod 600 .ssh/authorized_keys 
更安全的SSH
SSH只是做了传输加密,但是其服务本身并不安全,需要对其限制访问范围
SSH配置增强:
可设置项,按顺序设置/etc/ssh/sshd_config
PermitRootLogin
DenyUsers
AllowUsers
DenyGroups
AllowGroups

下面这个是禁止root用户、dev用户和test组登录的配置信息,日志见/var/log/secure
登录提示如下:
Permission denied, please try again.
日志信息如下:
Failed password for root from 127.0.0.1 port 51478 ssh2
User dev from 127.0.0.1 not allowed because listed in DenyUsers
User test from 127.0.0.1 not allowed because a group is listed in DenyGroups
配置项目如下:
PermitRootLogin no
DenyUsers dev
DenyGroups test
TCP wrapper(简化版的iptables)
样例:只允许172.16.0.1以及192.168.68.0网段的用户登录
/etc/host.allow
sshd: 172.16.0.1 192.168.68.0/255.255.255.0
/etc/host.deny 
sshd: ALL
iptables
样例:只允许172.16.0.1主机访问,禁止192.168.68.0/24网段的主机访问
iptables -A INPUT -i eth2 -s 192.168.68.0/24 -p tcp --dport 22 -j DROP
iptables -A INPUT -i eth0 -s 172.16.0.1 -p tcp --dport 22 -j ACCEPT
Xdmcp

通过Xdmcp协议,在windows上利用xbrowser打开远程的Linux桌面
相关概念请参考:
http://linux.vbird.org/linux_basic/0590xwindow.php
http://linux.vbird.org/linux_server/0310telnetssh.php#xdmcp_theory
配置和使用过程
Linux上配置Xdmcp服务端
yum groupinstall "Desktop" "Desktop Platform" "X Window System"
vim /etc/gdm/custom.conf 修改的主要配置项如下
[security]
AllowRemoteRoot=yes
DisallowTCP=false
[xdmcp]
Enable=true
Post=177
gdm & 
//如果启动失败,提示如果错误
//** (gdm-binary:7252): WARNING **: Couldn't connect to system bus: Failed to connect to socket /var/run/dbus/system_bus_socket: No such file or directory
//请使用service messagebus start启动服务
netstat -tulnp
//udp  0   0 0.0.0.0:177    0.0.0.0:*                 7441/gdm-binary
//tcp  0   0 0.0.0.0:6000   0.0.0.0:*     LISTEN      7453/Xorg
//6000端口是DisallowTCP=false所启用的,177端口才是我们想要的
iptables -A INPUT -p UDP -i eth0 --dport 177 --sport 1024:65534  -s 172.16.0.0/24 -j ACCEPT
windows上配置Xdmcp客户端
启动Xmanager下的Xbrowser,在Xdmcp下会自动发现能连接的主机,双击打开就能开到界面了
VNC

相比Xdmcp省去很多防火墙端口设置的复杂度。默认情况下,一用户对应一个VNC服务。
下面是的例子是说明如何启动,连接和关闭VNC服务。注意,你需要那个用户的VNC服务就切换到该用户来启动VNC服务
安装和启动centos6上的vncserver
yum -y install tigervnc-server
vncserver :n #n在0-10范围,启动5901端口接收对窗口1的请求,5902端口对应窗口2,以此类推;下一步设置vnc密码
vncpasswd #修改vnc密码
iptables -A INPUT -i eth0 -s 172.16.0.0/24 -p tcp --dport 5900:5910 -j ACCEPT
用windows上的realvnc连接VNC
在VNC server中输入 $vncIP:n,也就是输入vnc服务器的IP和窗口号
输入VNC密码
关闭centos6上的vncserver
vncserver -kill :1
这是VNC开机启动的例子
vim /etc/sysconfig/vncservers
VNCSERVERS="2:myusername" #窗口2被myusername
VNCSERVERARGS[3]="-geometry 1920x1080 -nolisten tcp" #窗口2的设置参数
chkconfig vncserver on
service vncserver start
这是VNC教学同步的配置方法:
http://pincer.blog.51cto.com/5759011/1617388/

远程访问Linux的常见方式的更多相关文章

  1. Linux操作系统常见安装方式

    Linux操作系统常见安装方式 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 在window操作系统安装程序只需要点点鼠标就能搞定的事情,但是在Linux操作系统中,尤其是字符终端 ...

  2. linux下常见的包安装方式

    linux下常见的包安装方式 一.总结 一句话总结: rpm包安装 tar.gz源代码包安装 yum方式安装rpm包 bin文件安装 1.yum是什么? 安装所有依赖的软件包 Yum(全称为 Yell ...

  3. Linux Systemcall Int0x80方式、Sysenter/Sysexit Difference Comparation

    目录 . 系统调用简介 . Linux系统调用实现方式的演进 . 通过INT 0x80中断方式进入系统调用 . 通过sysenter指令方式直接进入系统调用 . sysenter/sysexit编程示 ...

  4. 远程访问Linux系统桌面

     让Windows可以远程访问Linux系统桌面 http://jingyan.baidu.com/article/d8072ac47b810eec95cefde8.html linux系统下,11款 ...

  5. 适用于app.config与web.config的ConfigUtil读写工具类 基于MongoDb官方C#驱动封装MongoDbCsharpHelper类(CRUD类) 基于ASP.NET WEB API实现分布式数据访问中间层(提供对数据库的CRUD) C# 实现AOP 的几种常见方式

    适用于app.config与web.config的ConfigUtil读写工具类   之前文章:<两种读写配置文件的方案(app.config与web.config通用)>,现在重新整理一 ...

  6. Linux MySQL 常见无法启动或启动异常的解决方案

    Linux MySQL 常见无法启动或启动异常的解决方案 在 Linux 上自建 MySQL 服务器,经常遇到各种无法启动或启动后异常的问题,本文列举一些常见问题的解决办法. 注意:以下错误日志提示, ...

  7. Linux Ubuntu 常见的压缩命令

    小知识: Linux上常见的压缩命令就是gzip与bzip2,compress已经不再流行.gzip是有GNU计划所开发出来的压缩命令,该命令已经替换了compress命令.后来GNU又开发出bzip ...

  8. linux下常见解压缩命令

    linux下常见的压缩文件格式有tar.gz.tar.gz.tar.bz2.zip等等.对于不同的压缩文件格式有对应的解压缩命令.下面就对此小结一下: 1.后缀为.tar 用 tar –xvf 解压 ...

  9. Linux多线程同步方式

    当多个线程共享相同的内存时,需要确保每个线程看到一致的数据视图,当多个线程同时去修改这片内存时,就可能出现偏差,得到与预期不符合的值.为啥需要同步,一件事情逻辑上一定是有序的,即使在并发环境下:而操作 ...

随机推荐

  1. ubuntu 为firefox 安装flash_player

    1.下载安装包install_flash_player_11_linux.i386.tar.gz: 2.解压文件:$ tar -xvf install_flash_player_11_linux.i3 ...

  2. linux之Deamon进程创建及其进程exit,_exit,return之间的区别

    Dameon进程又被称做守护进程,一般来说他有以下2个特点: 1.生命周期非常长,一旦启动,一般不会终止,直到系统推出,不过dameon进程可以通过stop或者发送信号将其杀死 2.在后台执行,不跟任 ...

  3. hdu 5444(构造二叉树然后遍历)

    Elven Postman Time Limit: 1500/1000 MS (Java/Others)    Memory Limit: 131072/131072 K (Java/Others)T ...

  4. LeetCode OJ——Word Ladder

    http://oj.leetcode.com/problems/word-ladder/ 图的最短路径问题,可以用最短路径算法,也可以深搜,也可以广搜. 深搜版本: 第一次写的时候,把sum和visi ...

  5. Codeforces 23E Tree(树型DP)

    题目链接 Tree $dp[x][i]$表示以x为根的子树中x所属的连通快大小为i的时候 答案最大值 用$dp[x][j]$ * $dp[y][k]$ 来更新$dp[x][j + k]$. (听高手说 ...

  6. 猴子都能懂的git教程链接

    http://backlogtool.com/git-guide/cn/intro/intro1_1.html

  7. 简单的makefile模板

    makefile不是总用到,每次用到的时候总要重新找资料,有点麻烦(怪自己基础知识不扎实,汗).留一个通用模板放这,方便以后使用 CC = gcc CXX = g++ LINK = g++ CFLAG ...

  8. Maven创建Web工程并执行构建/测试/打包/部署

    创建工程基本参考上一篇Java Application工程,不同的是命令参数变了,创建Web工程的命令如下: mvn archetype:generate -DgroupId=com.jsoft.te ...

  9. asyncTask 的execute和executeOnExecutor 方法

    asyncTask.execute Android.os.Build.VERSION_CODES.DONUT, this was changed to a pool of threads allowi ...

  10. C#网络编程系列文章(一)之Socket实现异步TCPserver

    原创性声明 本文作者:小竹zz 本文地址http://blog.csdn.net/zhujunxxxxx/article/details/44258719 转载请注明出处 文章系列文件夹 C#网络编程 ...