“SSH” 标签页面:

  • CentOS在SSH中运行GUI图形界面程序

    最近需要在CentOS中运行FreeRapid,是一个图形界面的网盘下载器。

    一般情况来说,设置好JAVA_HOME、PATH等系统环境变量后,运行以下命令即可:

    java -jar frd.jar > /dev/null 2>&1 &

    但我的CentOS是无桌面环境的服务器系统,那怎么配置运行呢?步骤如下。

    首先,打开/etc/ssh/sshd_config,修改:

    X11Forwarding yes
    X11UseLocalhost yes

    然后重启sshd:

    service sshd restart

    重新登入ssh,若出现“WARNING! The remote SSH server rejected X11 forwarding request.”,则需要安装以下组件:

    yum install xorg-x11-xauth xterm

    若运行Java程序时出现“No X11 DISPLAY variable was set, but this program performed an operation which requires it.”,则:

    export DISPLAY=localhost:10.0

    localhost:10.0只是一个常用的例子,具体要根据用户本机的X11 server来设定;如果用Xmanager,在SSH的属性设置的Tunneling中forward到Xmanager了,登录SSH会自动设置好这个系统环境变量的。

    若出现“libXtst.so.6: cannot open shared object file: No such file or directory”,则安装必要组件:

    yum install libXi libXp libXtst

    还有个问题,SSH中用screen是很方便的,但是screen中运行X11图形界面程序就很麻烦了,解决方案有以下几个:

    1、用proxy-display这个小脚本,不过兼容性有点问题。https://blog.nelhage.com/2010/05/using-x-forwarding-with-screen/

    2、用xpra,号称是“X窗口环境中的screen”,相关网址是http://xpra.org

    3、不用X11转发,改用VNC进行远程图形界面传输,这是个很好的方案。还可以弥补X11 forwarding的性能卡顿问题。这个解决方案我会整理另一篇文章,参见《CentOS使用VNC查看X11图形界面窗口》:。

    2014.02.11 / 暂无评论 / 2,966 次点击 / 分类: 所谓技术

  • 让SSH/SOCKS成为全局代理的软件们(Windows+Linux)

    Windows下的有:

    1. Proxifier 下载地址
    2. ProxyCap 下载地址

    前者比较好用,可控规则较多。我正在使用。

    Linux下的有:

    1. proxychains 下载地址
    2. redsocks 下载地址
    3. tsocks 下载地址

    proxychain功能较多,支持多个代理轮询等;redsocks据说支持android;tsocks配置简单。

     

    proxychains教程

    假设代理为127.0.0.1,端口为7070。我在Ubuntu下安装。

    安装很简单:

    sudo apt-get install proxychains

    配置:

    sudo vi /etc/proxychains.conf

    把最后的“[ProxyList]”部分配置为自己的代理即可:

    socks4  127.0.0.1 7070

    使用方法:

    proxychains <程序名>

    即可让程序使用代理。

     

    redsocks教程

    严格意义上来说,proxychains不算自动的全局代理,有没有像Proxifier这样,开了之后自动让所有启动的程序都走系统代理呢?答案就是redsocks。

    首先安装Ubuntu编译环境和必要的库:

    sudo apt-get install autoconf automake libtool libevent-dev g++

    下载源代码,然后编译安装:

    ./mkauto.sh

    cp redsocks /usr/local/bin/

    配置文件为:

    base {
    // debug: connection progress & client list on SIGUSR1
    log_debug = off;

    // info: start and end of client session
    log_info = off;

    /* possible `log' values are:
    * stderr
    * file:/path/to/file
    * syslog:FACILITY facility is any of "daemon", "local0"..."local7"
    */
    log = "file:/dev/null";
    // log = stderr;
    // log = "file:/path/to/file";
    // log = "syslog:local7";

    // detach from console
    daemon = on;

    /* Change uid, gid and root directory, these options require root
    * privilegies on startup.
    * Note, your chroot may requre /etc/localtime if you write log to syslog.
    * Log is opened before chroot & uid changing.
    */
    // user = nobody;
    // group = nobody;
    // chroot = "/var/chroot";

    /* possible `redirector' values are:
    * iptables - for Linux
    * ipf - for FreeBSD
    * pf - for OpenBSD
    * generic - some generic redirector that MAY work
    */
    redirector = iptables;
    }

    redsocks {
    /* `local_ip' defaults to 127.0.0.1 for security reasons,
    * use 0.0.0.0 if you want to listen on every interface.
    * `local_*' are used as port to redirect to.
    */
    local_ip = 127.0.0.1;
    local_port = 12345;

    // `ip' and `port' are IP and tcp-port of proxy-server
    ip = 127.0.0.1;
    port = 7070;

    // known types: socks4, socks5, http-connect, http-relay
    type = socks5;

    // login = "foobar";
    // password = "baz";
    }

    redudp {
    // `local_ip' should not be 0.0.0.0 as it's also used for outgoing
    // packets that are sent as replies - and it should be fixed
    // if we want NAT to work properly.
    local_ip = 127.0.0.1;
    local_port = 10053;

    // `ip' and `port' of socks5 proxy server.
    ip = 10.0.0.1;
    port = 1080;
    login = username;
    password = pazzw0rd;

    // kernel does not give us this information, so we have to duplicate it
    // in both iptables rules and configuration file. By the way, you can
    // set `local_ip' to 127.45.67.89 if you need more than 65535 ports to
    // forward ;-)
    // This limitation may be relaxed in future versions using contrack-tools.
    dest_ip = 8.8.8.8;
    dest_port = 53;

    udp_timeout = 30;
    udp_timeout_stream = 180;
    }

    dnstc {
    // fake and really dumb DNS server that returns "truncated answer" to
    // every query via UDP, RFC-compliant resolver should repeat same query
    // via TCP in this case.
    local_ip = 127.0.0.1;
    local_port = 5300;
    }

    // you can add more `redsocks' and `redudp' sections if you need.

    这里的配置没有配置udp的代理部分,只是配置了tcp即redsocks部分。监听端口是12345。日志关闭了,因为好像我下载的当前版本无论怎么样都产生一堆调试日志,不知道以后会不会修复这点。

    启动关闭脚本redsocks.sh为(via):

    #! /bin/bash

    SSHHOST=creke
    SSHPORT=22
    SSHUSR=creke
    SSHPWD=creke

    SSHDAEMON=/usr/local/bin/plink
    SSHPIDFILE=/var/run/sshtunnel.pid

    start_ssh()
    {
        echo "Start SSH Tunnel Daemon: "
        start-stop-daemon -b -q -m -p $SSHPIDFILE --exec $SSHDAEMON -S \
        -- -N -D 127.0.0.1:7070 -P $SSHPORT -pw $SSHPWD $SSHUSR@$SSHHOST
        echo "SSH Tunnel Daemon Started."
    }

    stop_ssh()
    {
        #ps aux|grep "ssh -NfD 1234"|awk '{print $2}'|xargs kill
        if [ -f $SSHPIDFILE ]; then
        PID=$(cat $SSHPIDFILE)
        kill $PID
        while [ -d /proc/$PID ];
        do
        sleep 1
        done
        fi
        rm -rf $SSHPIDFILE
        echo "SSH Tunnel Daemon Stoped."
    }

    case "$1" in
      start)
        start_ssh
        cd /usr/local/redsocks
        if [ -e redsocks.log ] ; then
          rm redsocks.log
        fi
        ./redsocks -p /usr/local/redsocks/redsocks.pid #set daemon = on in config file
        # start redirection
        # iptables -t nat -A OUTPUT -p tcp --dport 80 -j REDIRECT --to 12345
        # iptables -t nat -A OUTPUT -p tcp --dport 443 -j REDIRECT --to 12345
        # Create new chain
        iptables -t nat -N REDSOCKS

        # Ignore LANs and some other reserved addresses.
        iptables -t nat -A REDSOCKS -d 0.0.0.0/8 -j RETURN
        iptables -t nat -A REDSOCKS -d 10.0.0.0/8 -j RETURN
        iptables -t nat -A REDSOCKS -d 127.0.0.0/8 -j RETURN
        iptables -t nat -A REDSOCKS -d 169.254.0.0/16 -j RETURN
        iptables -t nat -A REDSOCKS -d 172.16.0.0/12 -j RETURN
        iptables -t nat -A REDSOCKS -d 192.168.0.0/16 -j RETURN
        iptables -t nat -A REDSOCKS -d 224.0.0.0/4 -j RETURN
        iptables -t nat -A REDSOCKS -d 240.0.0.0/4 -j RETURN

        # Anything else should be redirected to port 12345
        iptables -t nat -A REDSOCKS -p tcp -j REDIRECT --to-ports 12345
        # Any tcp connection should be redirected.
        iptables -t nat -A OUTPUT -p tcp -j REDSOCKS
        ;;

      stop)
        stop_ssh
        cd /usr/local/redsocks
        if [ -e redsocks.pid ]; then
          kill `cat redsocks.pid`
          rm redsocks.pid
        else
          echo already killed, anyway, I will try killall
          killall -9 redsocks
        fi
        # stop redirection
        iptables -t nat -F OUTPUT
        iptables -t nat -F REDSOCKS
        iptables -t nat -X REDSOCKS
        ;;

      start_ssh)
        start_ssh
        ;;

      stop_ssh)
        stop_ssh
        ;;

      clean_dns)
        # iptables -A INPUT -p udp --sport 53 -m state --state ESTABLISHED -m you-know-who -j DROP -m comment --comment "drop you-know-who dns hijacks"
        echo this function not finished
        ;;

      *)
        echo "Usage: redsocks start|stop|start_ssh|stop_ssh|clean_dns" >&2
        exit 3
        ;;
    esac

    iptables的规则是让所有的TCP包都发送到redsocks监听的端口12345。本脚本还整合了ssh的daemon启动,使用start-stop-daemon来实现。

    启动和关闭:

    将启动关闭脚本中的开头的几个变量配置好

    启动命令:sudo ./redsocks.sh start

    关闭命令:sudo ./redsocks.sh stop

    2011.11.09 / 21 条评论 / 27,778 次点击 / 分类: 所谓技术

  • 让一个端口同时做两件事:http/https和ssh

    相信很多人都在YY:能不能让80端口分析连接协议,如果是http协议就让服务器交给http服务程序(如Apache、Nginx等)处理,如果是ssh协议就交给ssh服务程序(如OpenSSH Server)处理呢?

    答案显然是有的。

    首先,配置http服务程序监听8080端口或者让https服务监听8443端口,配置ssh服务程序监听22端口。具体不再赘述,如果这都不懂就不用往下看了,因为肯定会搞不定的。

    然后,安装一个叫haproxy的强大工具。步骤如下。

    下载源代码:

    wget http://haproxy.1wt.eu/download/1.4/src/haproxy-1.4.16.tar.gz

    查看当前内核版本:

    uname -r

    然后进入目录编译安装:

    cd haproxy-1.4.16

    make TARGET=linux26 PREFIX=/usr/local/blog.creke.net/haproxy

    make install PREFIX=/usr/local/blog.creke.net/haproxy

    其中,第二行的“TARGET”参数要和内核版本一致。第二、三行的“PREFIX”是安装位置。

    最后,配置haproxy。

    如果要监听80端口,检测到http协议就转发给8080端口使用HTTP,否则转发给22端口使用ssh。配置如下:

    #By http://blog.creke.net/

    global
        maxconn 5120 
        chroot /usr/local/blog.creke.net/haproxy  
        daemon
        quiet
        nbproc 2
        pidfile /usr/local/blog.creke.net/haproxy/haproxy.pid

    defaults
        timeout connect 5s
        timeout client 50s
        timeout server 20s

    listen http
        bind :80
        timeout client 1h
        tcp-request inspect-delay 2s
        acl is_http req_proto_http
        tcp-request content accept if is_http
        server server-http :8080
        use_backend ssh if !is_http

    backend ssh
        mode tcp
        timeout server 1h
        server server-ssh :22

    如果还有监听443端口,检测到https协议就转发到8443端口使用HTTPS,否则转发给22端口使用ssh。则配置如下:

    global
        maxconn 5120 
        chroot /usr/local/blog.creke.net/haproxy  
        daemon
        quiet
        nbproc 2
        pidfile /usr/local/blog.creke.net/haproxy/haproxy.pid

    defaults
        timeout connect 5s
        timeout client 50s
        timeout server 20s

    listen https
        bind :443
        timeout client 1h
        tcp-request inspect-delay 2s
        acl is_ssl req_ssl_ver 2:3.1
        tcp-request content accept if is_ssl
        server server-https :8443
        use_backend ssh if !is_ssl

    backend ssh
        mode tcp
        timeout server 1h
        server server-ssh :22

    把内容保存为“/usr/local/blog.creke.net/haproxy/etc/haproxy.conf”,执行命令:

    /usr/local/blog.creke.net/haproxy/sbin/haproxy -f /usr/local/blog.creke.net/haproxy/etc/haproxy.conf

    即可运行。

    好了,大家应该可以举一反三,起码也可以依葫芦画瓢吧。

    参考文章:

    https://dgl.cx/2010/01/haproxy-ssh-and-ssl-on-same-port

    http://haproxy.1wt.eu/download/1.4/doc/configuration.txt

    2011.08.16 / 4 条评论 / 5,383 次点击 / 分类: 所谓技术

  • Windows下使用Xmanager连接SSH开启Linux远程桌面的方法

    在Windows下,可以使用“Xmanager Enterprise 3”连接SSH。这个套件包集成了:连接SSH用的“Xshell”;用于文件传送SFTP或FTP的“Xftp”;用于打印服务的“Xlpd”;还有当然就是显示X窗体的“Xmanager”。

    在Windows下使用它,可以很方便地开启窗口,比如:

    xcalc

    可以开启图形化界面的Linux计算器。

    而开启Linux远程桌面的方法,则分不同的图形环境,有不同的命令。

    在KDE环境下,开启远程桌面的命令是:

    startkde

    在gnome环境下,开启远程桌面的命令是:

    gnome-session

    好了,就是这样。

    2010.09.18 / 暂无评论 / 2,372 次点击 / 分类: 所谓技术

  • SSH隧道与端口转发及内网穿透

    大家都知道SSH是一种安全的传输协议,用在连接服务器上比较多。不过其实除了这个功能,它的隧道转发功能更是吸引人。下面是个人根据自己的需求以及在网上查找的资料配合自己的实际操作所得到的一些心得。

    SSH/plink命令的基本资料:

    首先,认识下这三个非常强大的命令:

    ssh -C -f -N -g -L listen_port:DST_Host:DST_port user@Tunnel_Host
    ssh -C -f -N -g -R listen_port:DST_Host:DST_port user@Tunnel_Host
    ssh -C -f -N -g -D listen_port user@Tunnel_Host

    相关参数的解释:
    -f Fork into background after authentication.
    后台认证用户/密码,通常和-N连用,不用登录到远程主机。

    -L port:host:hostport
    将本地机(客户机)的某个端口转发到远端指定机器的指定端口. 工作原理是这样的, 本地机器上分配了一个 socket 侦听 port 端口, 一旦这个端口上有了连接, 该连接就经过安全通道转发出去, 同时远程主机和 host 的 hostport 端口建立连接. 可以在配置文件中指定端口的转发. 只有 root 才能转发特权端口. IPv6 地址用另一种格式说明: port/host/hostport

    -R port:host:hostport
    将远程主机(服务器)的某个端口转发到本地端指定机器的指定端口. 工作原理是这样的, 远程主机上分配了一个 socket 侦听 port 端口, 一旦这个端口上有了连接, 该连接就经过安全通道转向出去, 同时本地主机和 host 的 hostport 端口建立连接. 可以在配置文件中指定端口的转发. 只有用 root 登录远程主机才能转发特权端口. IPv6 地址用另一种格式说明: port/host/hostport

    -D port
    指定一个本地机器 “动态的’’ 应用程序端口转发. 工作原理是这样的, 本地机器上分配了一个 socket 侦听 port 端口, 一旦这个端口上有了连接, 该连接就经过安全通道转发出去, 根据应用程序的协议可以判断出远程主机将和哪里连接. 目前支持 SOCKS4 协议, 将充当 SOCKS4 服务器. 只有 root 才能转发特权端口. 可以在配置文件中指定动态端口的转发.

    -C Enable compression.
    压缩数据传输。

    -N Do not execute a shell or command.
    不执行脚本或命令,通常与-f连用。

    -g Allow remote hosts to connect to forwarded ports.
    在-L/-R/-D参数中,允许远程主机连接到建立的转发的端口,如果不加这个参数,只允许本地主机建立连接。注:这个参数我在实践中似乎始终不起作用。

    以上摘录自:http://chenweiguang.blogspot.com/2009/03/ssh.html

    建立本地SSH隧道例子

    在我们计划建立一个本地SSH隧道之前,我们必须清楚下面这些数据:

    1. 中间服务器d的IP地址
    2. 要访问服务器c的IP地址
    3. 要访问服务器c的端口

    现在,我们把上面这张图变得具体一些,给这些机器加上IP地址。并且根据下面这张图列出我们的计划:

    1. 需要访问234.234.234.234的FTP服务,也就是端口21
    2. 中间服务器是123.123.123.123

    现在我们使用下面这条命令来达成我们的目的

    1.ssh -N -f -L 2121:234.234.234.234:21 123.123.123.123

    2.ftp localhost:2121 # 现在访问本地2121端口,就能连接234.234.234.234的21端口了

    这里我们用到了SSH客户端的三个参数,下面我们一一做出解释:

    • -N 告诉SSH客户端,这个连接不需要执行任何命令。仅仅做端口转发
    • -f 告诉SSH客户端在后台运行
    • -L 做本地映射端口,被冒号分割的三个部分含义分别是
      • 需要使用的本地端口号
      • 需要访问的目标机器IP地址(IP: 234.234.234.234)
      • 需要访问的目标机器端口(端口: 21)
    • 最后一个参数是我们用来建立隧道的中间机器的IP地址(IP: 123.123.123.123)

    我们再重复一下-L参数的行为。-L X:Y:Z的含义是,将IP为Y的机器的Z端口通过中间服务器映射到本地机器的X端口。

    在这条命令成功执行之后,我们已经具有绕过公司防火墙的能力,并且成功访问到了我们喜欢的一个FTP服务器了。

    如何建立远程SSH隧道

    通过建立本地SSH隧道,我们成功地绕过防火墙开始下载FTP上的资源了。那么当我们在家里的时候想要察看下载进度怎么办呢?大多数公司的网络是通过路由器接入互联网的,公司内部的机器不会直接与互联网连接,也就是不能通过互联网直接访问。通过线路D-B-A访问公司里的机器a便是不可能的。也许你已经注意到了,虽然D-B-A这个方向的连接不通,但是A-B-D这个方向的连接是没有问题的。那么,我们能否利用一条已经连接好的A-B-D方向的连接来完成D-B-A方向的访问呢?答案是肯定的,这就是远程SSH隧道的用途。

    与本地SSH一样,我们在建立远程SSH隧道之前要清楚下面几个参数:

    • 需要访问内部机器的远程机器的IP地址(这里是123.123.123.123)
    • 需要让远程机器能访问的内部机器的IP地址(这里因为是想把本机映射出去,因此IP是127.0.0.1)
    • 需要让远程机器能访问的内部机器的端口号(端口:22)

    在清楚了上面的参数后,我们使用下面的命令来建立一个远程SSH隧道

    1.ssh -N -f -R 2222:127.0.0.1:22 123.123.123.123

    现在,在IP是123.123.123.123的机器上我们用下面的命令就可以登陆公司的IP是192.168.0.100的机器了。

    1.ssh -p 2222 localhost

    -N,-f 这两个参数我们已经在本地SSH隧道中介绍过了。我们现在重点说说参数-R。该参数的三个部分的含义分别是:

    • 远程机器使用的端口(2222)
    • 需要映射的内部机器的IP地址(127.0.0.1)
    • 需要映射的内部机器的端口(22)

    例如:-R X:Y:Z 就是把我们内部的Y机器的Z端口映射到远程机器的X端口上。

    建立SSH隧道的几个技巧

    自动重连

    隧道可能因为某些原因断开,例如:机器重启,长时间没有数据通信而被路由器切断等等。因此我们可以用程序控制隧道的重新连接,例如一个简单的循环或者使用 djb’s daemontools . 不管用哪种方法,重连时都应避免因输入密码而卡死程序。关于如何安全的避免输入密码的方法,请参考我的 如何实现安全的免密码ssh登录 。这里请注意,如果通过其他程序控制隧道连接,应当避免将SSH客户端放到后台执行,也就是去掉-f参数。

    保持长时间连接

    有些路由器会把长时间没有通信的连接断开。SSH客户端的TCPKeepAlive选项可以避免这个问题的发生,默认情况下它是被开启的。如果它被关闭了,可以在ssh的命令上加上-o TCPKeepAlive=yes来开启。

    另一种方法是,去掉-N参数,加入一个定期能产生输出的命令。例如: top或者vmstat。下面给出一个这种方法的例子:

    1.ssh -R 2222:localhost:22 123.123.123.123 "vmstat 30"

    检查隧道状态

    有些时候隧道会因为一些原因通信不畅而卡死,例如:由于传输数据量太大,被路由器带入stalled状态。这种时候,往往SSH客户端并不退出,而是卡死在那里。一种应对方法是,使用SSH客户端的ServerAliveInterval和ServerAliveCountMax选项。 ServerAliveInterval会在隧道无通信后的一段设置好的时间后发送一个请求给服务器要求服务器响应。如果服务器在 ServerAliveCountMax次请求后都没能响应,那么SSH客户端就自动断开连接并退出,将控制权交给你的监控程序。这两个选项的设置方法分别是在ssh时加入-o ServerAliveInterval=n和-o ServerAliveCountMax=m。其中n, m可以自行定义。

    如何将端口绑定到外部地址上

    使用上面的方法,映射的端口只能绑定在127.0.0.1这个接口上。也就是说,只能被本机自己访问到。如何才能让其他机器访问这个端口呢?我们可以把这个映射的端口绑定在0.0.0.0的接口上,方法是加上参数-b 0.0.0.0。同时还需要打开SSH服务器端的一个选项-GatewayPorts。默认情况下它应当是被打开的。如果被关闭的话,可以在/etc /sshd_config中修改GatewayPorts no为GatewayPorts yes来打开它。

    通过SSH隧道建立SOCKS服务器

    如果我们需要借助一台中间服务器访问很多资源,一个个映射显然不是高明的办法(事实上,高明确实没有用这个方法)。幸好,SSH客户端为我们提供了通过SSH隧道建立SOCKS服务器的功能。

    通过下面的命令我们可以建立一个通过123.123.123.123的SOCKS服务器。

    1.ssh -N -f -D 1080 123.123.123 # 将端口绑定在127.0.0.1上

    2.ssh -N -f -D 0.0.0.0:1080 123.123.123.123 # 将端口绑定在0.0.0.0上

    通过SSH建立的SOCKS服务器使用的是SOCKS5协议,在为应用程序设置SOCKS代理的时候要特别注意。

    以上摘录自:http://blog.jianingy.com/content/...

    2010.09.16 / 11 条评论 / 33,175 次点击 / 分类: 所谓技术

  • 使用SSH tunnel连接OpenVPN

    其实很折腾人的东西,本来使用OpenVPN就是为了X墙,而有SSH就已经可以X墙了,现在用SSH连接OpenVPN,就真是吃饱了撑的……

    不过还是说一下方法吧。

  • Modify the server vpn configuration file by adding proto tcp-server
  • Start the VPN server
  • Modify the client by changing the first line to remote localhost and adding the line proto tcp-client
  • Tunnel your local port 1194 (what OpenVPN uses) to 1194 on the machine you want to access - via the web server hosting the SSH daemon:
    ssh -L1194:vpnserver:1194 user@webserver
  • Start the VPN client
  • 原文是http://www.classy.dk/hacks/archives/002287.html。我翻译一下,并作出一定修饰。

    首先,在你的VPN配置文件里,把“remote VPN服务器 端口”这样的行去掉,替换为“remote localhost”。

    然后,打开SSH,使用命令:plink -P SSH端口 -L 1194:VPN地址:VPN端口 -pw 密码 -N 用户名@SSH地址。“L”参数的意思是,把远程端口映射到本地端口。

    最后,启动OpenVPN客户端。

    PS:如果想连接被X的OpenVPN服务器,建议不要用这种方法,用个Socks代理或者HTTP代理连接会更好。

    2010.05.04 / 2 条评论 / 1,672 次点击 / 分类: 所谓技术

  • SSH用Putty进行SSHD安全登录

    SSH用Putty进行SSHD安全登录
    将公钥文件放到"~/.ssh/authorized_keys"中,即可。
    如果显示"server refused our key",原因为公匙和私匙不匹配,或者没有 authorized_keys 文件,或者系统不认证改文件。
    首先,要看看/etc/ssh/sshd_config文件的"StrictModes"是否打开,且用户主目录和相关的配置文件的宿主和权限检查没通过。如果不懂具体如何更改权限,则用"StrictModes no"把这个选项关掉。
    如果用Putty,直接用记事本打开公钥,粘贴公钥文件的内容是会出问题的。这时候可以用PUTTYGEN打开私钥,然后输入密码生成公钥,然后在vi下粘贴即可。
    生成密钥,同样是用PUTTYGEN,具体不难,就不�嗦了。

    2009.09.23 / 暂无评论 / 654 次点击 / 分类: 所谓技术

  • SSH学习手札(一)

    SSH学习手札(一)
    开始SSH。
    登录,先用"links"玩玩。语法是"links www.creke.net"。去了google、百度和Creke ACG看看效果。如附图。

    退出要用"exit"来正常注销,也可以用快捷键 Ctrl+d 来注销登录。而用"who"或"w"可以看到有多少用户同时在线。
    "vi"命令,:q!强制退出,:wq保存退出。":"为执行命令。而i为插入,o为插入外加开新行。

    就先随便写点。

    最后贴一个Apache的中文文档:
    http://lamp.linux.gov.cn/Apache/ApacheMenu/index.html

    2009.06.14 / 暂无评论 / 631 次点击 / 分类: 所谓技术