網頁

2013年3月29日 星期五

Set user shell using ssh script to linux base system and sudo problem.

I using ruby ssh library to linux server. then run sudo command.
like "sudo usermod -s /sbin/nologin Chien-Ming-Wang".


centos:
  Set user shell: sudo chsh -s /sbin/nologin [login name]
  When error: "sudo: sorry, you must have a tty to run sudo"
    vi /etc/sudoers
    mark line: "Defaults    requiretty"


Debian & Ubuntu:
  Set user shell: usermod -s /usr/sbin/nologin [login name]
  When error: "sudo: no tty present and no askpass program specified"
    vi /etc/sudoers
    Add line: [login name] ALL=(ALL) NOPASSWD: ALL

FreeBSD:
  Set user shell: sudo pw usermod [login name] -s /usr/sbin/nologin
  When error: "sudo: no tty present and no askpass program specified"
    vi /usr/local/etc/sudoers
    Add line: [login name] ALL=(ALL) NOPASSWD: ALL

2013年3月18日 星期一

用ssh tunnel來突破公司的防火牆

用ssh tunnel來突破公司的防火牆

外部電腦能連至Server,但Server不能連至公司內電腦,但公司內電腦能連至Server,此時運用反向Tunnel。

  • 公司內電腦建立反向Tunnel連至Server: ssh -NfR 2222:127.0.0.1:22 server_ip_or_domain
  • 外部電腦建tunnel連至Server: ssh -NfL 4444:localhost:2222  server_ip_or_domain
  • 外部電腦 即可連至公司內電腦:  ssh -p4444 localhost


外部電腦不能連至公司內電腦,但內部電腦能連至外部電腦,此時運用反向Tunnel。

  • 公司內電腦建立反向Tunnel連至外部電腦 ssh -NfR 2222:127.0.0.1:22 external_ip_or_domain
  • 外部電腦 即可連至公司內電腦:  ssh -p2222 localhost

參數說明
  • -L [bind_address:]port:host:hostport
    • Specifies that the given port on the local (client) host is to be forwarded to the given host and port on the remote side.
  • -R [bind_address:]port:host:hostport
    • Specifies that the given port on the remote (server) host is to be forwarded to the given host and port on the local side.
  • -N      Do not execute a remote command. 
  • -f      Requests ssh to go to background just before command execution.