SSH 用户身份验证和控制

1.root@192.168.0.122
远程连接到192.168.0.122这个IP地址所代表的主机上。
在每个用户主目录下都有一个.ssh的隐含文件,进入之后,运行命令ssh-keygen会产生id-rsa私钥(相当于密钥) id_rsa.pub公钥(相当于鎖) authorized_keys 然后你通过
        ssh-copy-id -i id_rsa.pub 192.168.0.22
传给对方主机上的.ssh目录中,这样你每次要连接的时候,只需要开一次鎖就可以啦!
(1)ssh-keygen
         <Enter>
        <Enter>
         <Enter>
   ssh-copy-id -i id_rsa.pub 192.168.0.22
可以通过ssh 192.168.0.122命令以student的身份连接到对方的主机上
(2) 需要口令才能进去的,
        ssh-keygen
             <Enter>
        接下来你可以输入两遍你要设置的密码,
  ssh-copy-id -i id_rsa.pub 192.168.0.22
  测试:
    ssh  192.168.0.22
     输入密码
(3) 加代理服务器和口令的
     ssh-keygen
             <Enter>
        接下来你可以输入两遍你要设置的密码,
      ssh-copy-id -i id_rsa.pub 192.168.0.22
      ssh-agent
      ssh-agent bash
      ssh-add

    测试:
    ssh  192.168.0.22
这样你只需要输入一次密码,退出后再连接就不需要再次输入口令了,但是你在关闭该shall的时候在打开一个新的shell终端的就不行了,还需要从新添加代理。
2   排错处理:
 将拥有公钥的那台主机的/etc/ssh_host_*删除,然后/etc/init.d/sshd restart ,之 后在连接的时候就会出现好多@@@@@,这是因为你每次链接的时候客户机和服务器之间会拿/etc/ssh_host_*的文件与拥有私钥的那台主机上的. ~/.ssh/known_hosts进行对比,之后你删了在产生的就不符合了,所以肯定连不上了。
 解决办法:将拥有私钥的那台主机上的 ~/.ssh/known_hosts删除,然后重新传一遍公钥。
 ssh连接不上,安装openssh-client 即可
3.关于ssh一些配置文件的修改问题假设设置的在192.168.0.122上
  vi /etc/ssh/ssd_config
  (1)  PermitRootlogin  yes
     默认是yes,意思是允许其他主机以root身份ssh连接到本机,若是no,意思就是不允许以root身份登录到本机
  (2)AllowUsers  student
     意思是只允许以student身份登录到本台机子。不允许以其他身份登录
    ssh  student@192.168.0.22  可以连接到
    ssh   root@192.168.0.22    连接不上
(3)Password Authentication yes
 默认是yes,意思是允许通过密码登录
 若no,意思就是说不允许以密码登录,那么你只能通过ssh密码密钥设置访问,这样你就不用输入密码了,做实验的时候注意在设置好ssh之后在改动好你的SSH
 
4.
   ssh -x student@192.168.0.122 firefox
这条命令会在192.168.0.122 那台主机上以student身份×××firefox。在你的电脑上显示出来,对方可能看不到,可是查看本机进程就会发现

5.vi   /etc/motd

写的内容会在你通过ssh连接到你的机子上时的时候显示出来。
6.关于ssh链接对方主机显示ssh: connect to host 192.168.0.24 port 22: No route to host
有以下几种可能性:(首先要注意将iptables 和selinux都要关闭哦!)
(1)检查对方主机是否可以ping 通  
(2)查看出错方在哪里,看你本机连其他的机子是否有问题,排查错误主机设置,      有可能是对方主机的/ect/hosts.allow或者/etc/hosts.deny的设置,又或者是/etc/xinetd.conf中的设置,
(3)查看/etc/sshd/sshd_config下面有没有设置将端口号分配的问题!






VNC  简单使用
一、
1、
(1)运行命令 vncserver。若已安装了vncserver,则需设定vnc密码,若未安装 vncserver,则用命令yum install tigervnc-server  -y 即可,如果已经被设置vnc密码了,那么你就不可以重现设置了,只能通过vncpasswd 来修改你的密码了。密码存放位置 ~/.vnc/passwd 。
测试:
在vnc客户端连接
vncviewer -shared -viewonly  192.168.0.115:1(注意在链接的时候将iptables和selinux关闭)

(2)给某些用户分配特定的登录端口。

     步骤1. 在虚拟机上用 vi /etc/sysconfig/vncservers
           VNCSERVERS="2:student 3:hello"(意思是将服务器上的2号端口分配给student,3号端口分配给hello,意思是你在真机上用 vncviewer  192.168.0.115:2 时是以第二号端口的student身份登录到服务器上的机子的)
     注意:  有一点你要注意的是:   你如果把2号端口给student,3号端口给sushan,那么你在服务器(上的应该分别以student和hello身份分别运行命令 vncserver 命令,然后可能会产生一些端口,你应该随之将该端口杀死,eg: vncserver -kill :1

    2.  /etc/init.d/vncservers restart   重启服务
测试阶段:
    在你的真机上连接:
    vncviewer   192.168.0.115:2
    (这样你就会连接到服务器上的以student身份登录的界面)
  
     vncviewer   192.168.0.115:3
    (这样你就会连接到服务器上的以hello身份登录的界面)
附加:
要想设置开机启动,用
chkconfig --list vncserver(查看)
chkconfig  --level 5 vncserver on(在运行级别五开启)

二.为了安全性,可以和server似的设计密码
    此时你可以通过ssh-keygen
     ssh-copy-id -i id_rsa.pub root@192.168.0.115
     等一系列设置ssh-的密码,在真机上执行,

    在你服务器上      vi /etc/sysconfig/vncservers
               VNCSERVERS="2:student"
    重启服务。
    测试:
     vncviewer -via root@192.168.0.115   192.168.0.115:2
root@192.168.0.115 :目的就是通过ssh来设置密码的。因为你把密码传给root,了,所以是root@192.168.0.115  。如果你把密码给student了,那么你  student@192.168.0.115 传送了。
三.
   vncserver   -geometry  1024x748   (设置练到服务器上的分辨率)
四.
注意:
在做完一次试验后,如:
    vncviewer   192.168.0.115:2
    (这样你就会连接到服务器上的以student身份登录的界面)
那么就会在你的服务器上开启了端口2,在student用户下,而如果你在尝试做另外一次试验的时候,那么在你重启服务的时候/etc/init.d /vncserver restart 会显示失败ve。因为这时在你的student身份下会开启了2号端口,你应该将该端口杀死,再去做实验的。你应该切换到student身份下(虚拟机上),用vncserver -kill :2 杀死,在做试验。(这就是之前提到的为何每次运行vncserver后要kill 掉之前的端口号)