我公司的生产服务器(FOO、BAR...)位于两个网关服务器(A、B)后面。为了连接到服务器 FOO,我必须使用我的用户名 JOHNDOE 打开与服务器 A 或 B 的 ssh 连接,然后从 A(或 B)我可以访问任何使用标准用户名打开 SSH 连接的生产服务器(我们称之为威比)。
所以,每次我必须做这样的事情:
ssh johndoe@a
...
ssh webby@foo
...
# now I can work on the server
Run Code Online (Sandbox Code Playgroud)
可以想象,当我需要使用scp或需要快速打开多个连接时,这很麻烦。
我已经配置了一个 ssh 密钥,并且我正在使用 .ssh/config 作为一些快捷方式。
我想知道我是否可以创建某种 ssh 配置以便输入
ssh foo
Run Code Online (Sandbox Code Playgroud)
并让 SSH 为我打开/转发所有连接。是否可以?
编辑
womble 的回答正是我要找的,但现在看来我不能使用 netcat,因为它没有安装在网关服务器上。
weppos:~ weppos$ ssh foo -vv
OpenSSH_5.1p1, OpenSSL 0.9.7l 28 Sep 2006
debug1: Reading configuration data /Users/xyz/.ssh/config
debug1: Applying options for foo
debug1: Reading configuration data /etc/ssh_config
debug2: ssh_connect: needpriv 0
debug1: …Run Code Online (Sandbox Code Playgroud) 我正在配置我的新 VPS 以托管带有 Apache 和Passenger 的Rails 应用程序。我有另一个 VPS 启动并运行,我几个月前配置了。
在新的上aptitude,我通过 安装了 Apache 及其软件包,就像我在第一个上一样。在最新的 VPS 上运行以下命令返回成功响应
root@www:/etc/apache2# apache2ctl status
Apache Server Status for localhost
Server Version: Apache/2.2.8 (Ubuntu)
Server Built: Jul 10 2009 18:47:48
...
Run Code Online (Sandbox Code Playgroud)
旧版 VPS 上的相同命令返回以下错误
root@www:/etc/apache2# apache2ctl status
/usr/sbin/apache2ctl: 124: www-browser: not found
Run Code Online (Sandbox Code Playgroud)
我在这个 VPS 上使用 Apache 没有任何问题,但是我想知道如何解决这个错误。
直到今天,我才习惯相信它不可能。从这个页面
名称字段可以是以下任何一项:
- 完全限定域名 (FQDN),例如 example.com。(以点结尾)
- 非限定名称(不以点结尾)
- '@'(替代 $ORIGIN 的当前值)
- “空格”或“空白”(制表符) - 这将替换为名称字段的先前值。
现在,看看下面的查询
$ dig top-immotunisie.com NS
; <<>> DiG 9.6.0-APPLE-P2 <<>> top-immotunisie.com NS
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 44156
;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 0
;; QUESTION SECTION:
;top-immotunisie.com. IN NS
;; ANSWER SECTION:
top-immotunisie.com. 36012 IN NS ns1.topnet.tn.
top-immotunisie.com. 36012 IN NS 196.203.251.8.
;; Query time: 353 msec
;; SERVER: 85.37.17.16#53(85.37.17.16) …Run Code Online (Sandbox Code Playgroud) 在我的 Ubuntu 服务器上,我使用God来监控一些 Ruby 进程/脚本,包括一个队列系统。
上帝会自动检查我的进程之一何时存在并重新启动它。它还跟踪内存使用情况,并在触发特定条件时正确操作。今天我重新启动了服务器,过了一会儿我发现我的队列不起作用。快速检查后,我发现服务器重启后上帝没有重启(我认为应该)。
确保上帝(或通用进程)在服务器重新启动时或进程因任何原因被终止时自动重新启动的最佳方法是什么?
我用来启动 God 的具体命令是
god -c config
Run Code Online (Sandbox Code Playgroud) 我的服务器运行使用 aptitude 安装的 Ubuntu Hardy 和 Ruby 1.8.6。我想升级到 Ruby 1.8.7,但不幸的是,Ruby 包包含从 Ubuntu Intrepid 开始的 Ruby 1.8.7。
我阅读了一些关于如何升级到 Ruby 1.8.7 的教程,我发现至少有 3 种不同的方法来完成这项任务:
我有点困惑。考虑到我不需要在同一台服务器上安装多个 Ruby 版本,您如何建议升级到 Ruby 1.8.7?我想用 Ruby 1.8.7 彻底替换现有的 Ruby 1.8.6。
是否可以将 sudo 配置为要求输入 root 密码而不是用户密码?
服务器配置了一个 root 用户和一个具有有限权限的简单用户(我们称他为简单用户),用于部署托管在服务器上的所有应用程序。用户 simple 不在 sudoers 列表中,因此
$ sudo command
Run Code Online (Sandbox Code Playgroud)
不会工作,因为简单的密码不能授予他 root 权限。
有时,我需要通过 Capistrano(一种 ruby 部署工具)运行一些需要 root 访问权限的脚本,并且编写脚本以便以 root 身份登录、运行脚本然后注销非常困难。我希望能够执行以下语句
$ sudo god restart tasks-group
Run Code Online (Sandbox Code Playgroud)
并让 Capistrano 提示我输入 root 密码。目前,Capistrano 提示输入部署用户密码,这显然是一个非管理员帐户。
ubuntu ×4
apache-2.2 ×1
capistrano ×1
daemon ×1
ip ×1
linux ×1
nameserver ×1
password ×1
process ×1
root ×1
ruby ×1
ssh ×1
ssh-tunnel ×1
su ×1
sudo ×1
ubuntu-8.04 ×1