标签: ssh

在 linux 后台运行 python 应用程序

这里有一个奇怪的问题,但我正在 Linux 服务器上使用 python 聊天服务器/客户端组合。目前,如果我这样做:

$: cd /path/to/chat/server
$: sudo python ChatServer_Listen.py
Run Code Online (Sandbox Code Playgroud)

这将启动 python 应用程序运行循环,服务器侦听传入的 TCP 连接。

我的问题是,如果我关闭终端窗口,ssh 会话将退出,python 应用程序停止运行,并且客户端无法再连接。我宁愿不在本地 24/7 全天候运行终端实例。我可以将此 Python 应用程序设置为可以在 Linux 后台运行的应用程序吗?如果是这样,如何?理想情况下,它有点像 Apache,它只是作为服务运行。

谢谢你的协助!

linux ssh python terminal background-process

5
推荐指数
1
解决办法
2万
查看次数

与 nobody 用户进行 SSH 连接

我在 FreeBSD 上。本质上,我正在尝试将 php 脚本(由 apache 运行)ssh 连接到另一台机器。我遇到了没有人没有 .ssh 配置文件的问题,因此出现错误:

无法创建目录“/不存在/.ssh”。主机密钥验证失败。

有没有办法解决这个问题?如果您可以在没有 root 访问权限的情况下执行此操作,则奖励积分,因此我不需要向我的网络托管公司支付费用。

谢谢。

linux freebsd ssh

5
推荐指数
1
解决办法
5646
查看次数

通过 ssh 在远程服务器上使用本地 LS_COLORS 而无需修改远程服务器

我可以访问大量不同的 ssh 帐户,我可以想象有数百个,我在不同场合使用这些帐户。其中一些是个人的,其中一些是我从客户那里得到的并且是共享的,而且很多都是暂时的。为一次使用而创建,一段时间后将自动删除。

现在我的问题是我使用了两个 .dircolors,一个浅色和一个深色主题。我非常喜欢这个设置,但这意味着每次我 ssh 到服务器时都复制一个新的 .dircolors,并且在共享帐户上偶尔会惹恼其他人。我尝试修改我的 ssh 脚本以允许我使用我的本地 LS_COLORS,但是我遇到了一些问题。

如果我使用: ssh -t vps2 'export LS_COLORS="'$LS_COLORS'"; exec /bin/bash --noprofile --norc' 它有效,但不完全可用,因为它忽略了所有系统默认信息。

如果我使用: ssh -t vps2 'export LS_COLORS="'$LS_COLORS'"; exec /bin/bash' 它不起作用,因为 bash 通过 .profile 并加载不同的 LS_COLORS。

关于如何加载默认 .bash_profile/.bashrc 并拥有自己的 LS_COLORS 的任何建议?

ssh bash environment-variables

5
推荐指数
1
解决办法
2111
查看次数

Ubuntu 上的 SSH 问题 - 本地连接正常,远程连接 - 是我还是我的 ISP?

我在运行 Ubuntu 12.04 的服务器上遇到了问题,我正在尝试设置远程连接,以便我可以在外地工作时访问服务器。我已经安装了 SSH 服务器和所有这些东西,并将默认端口从 22 重新分配到 3399。

来自任何操作系统的本地连接都可以连接到 192.168... 地址,但我绝对无法连接到实际 IP 地址。

我相信我的配置是正确的,我会附上它。如果我在配置中做错了什么,请告诉我,我会对其进行更改。

老实说,我认为我的 ISP 提供的路由器很糟糕,尽管转发了 ssh 端口,但它可能会阻止任何入站流量。有什么我可以尝试验证的吗?当我通过我们的静态 IP 连接时,/var/log/auth 没有显示任何错误。我已经包含了下面未注释的所有值:(sshd_config)

Port 3399

ListenAddress 0.0.0.0
Protocol 2

HostKey /etc/ssh/ssh_host_rsa_key
HostKey /etc/ssh/ssh_host_dsa_key
HostKey /etc/ssh/ssh_host_ecdsa_key
UsePrivilegeSeparation yes
KeyRegenerationInterval 3600
ServerKeyBits 768
SyslogFacility AUTH
LogLevel INFO
LoginGraceTime 120
PermitRootLogin yes
StrictModes yes
UseDNS no
RSAAuthentication yes
IgnoreRhosts yes
RhostsRSAAuthentication no
HostbasedAuthentication no
PermitEmptyPasswords no
ChallengeResponseAuthentication no
PasswordAuthentication yes
GSSAPIAuthentication no
X11Forwarding yes
X11DisplayOffset 10
PrintMotd no
PrintLastLog yes
TCPKeepAlive yes
AcceptEnv …
Run Code Online (Sandbox Code Playgroud)

ubuntu ssh port

5
推荐指数
1
解决办法
1791
查看次数

ssh 密钥丢失的理论情况

这还没有发生在我身上。

但让我们假设以下场景:

我将我的公钥复制到服务器,然后禁用 ssh 的密码验证。然后,不知什么原因,服务器上的公钥被破坏,我无法再登录,因为我关闭了密码验证。

我有哪些选项可以重新获得对该服务器的访问权限?

ssh ssh-keys

5
推荐指数
1
解决办法
196
查看次数

`ssh foo "<command/>"` 没有加载远程别名?

总结:为什么会失败

$ ssh foo 'R --version | head -n 1'
bash: R: command not found
Run Code Online (Sandbox Code Playgroud)

但这成功了

$ ssh foo 'grep -nHe 'bashrc' ~/.bash_profile'
/home/me/.bash_profile:3:# source the users .bashrc if it exists
/home/me/.bash_profile:4:if [ -f "${HOME}/.bashrc" ] ; then
/home/me/.bash_profile:5:  source "${HOME}/.bashrc"
$ ssh foo 'grep -nHe "\WR\W" ~/.bashrc'
/home/me/.bashrc:118:alias R='/share/linux86_64/bin/R'
$ ssh foo '/share/linux86_64/bin/R --version | head -n 1'
R version 2.14.1 (2011-12-22)
Run Code Online (Sandbox Code Playgroud)

? 细节:

我是 2 个集群的(无根)用户。一个使用环境模块,因此该集群上的任何给定服务器都可以(通过module add)提供几乎相同的资源。不幸的是,我也必须在另一个集群上工作,它有单独管理的服务器,所以我养成了这样做的习惯,例如,

EXEC_NAME='whatever'
for S in 'foo' 'bar' 'baz' ; do …
Run Code Online (Sandbox Code Playgroud)

linux ssh bash bashrc login-script

5
推荐指数
1
解决办法
3016
查看次数

如何自动化网站部署到生产,包括缩小 CSS/JS?

目前,我正在使用以下手动过程将我的 PHP 网站从登台部署到生产:

  • 使用在线 YUI 压缩工具缩小 CSS 和 JavaScript 文件。
  • 将原始 CSS 和 JavaScript 文件移动到另一个目录(以备份它们),然后用缩小的 CSS 和 JavaScript CSS 文件替换它们。
  • 开始将所有文件从我的临时服务器复制到我的 Windows PC。
  • 删除暂存 .htaccess 和索引文件,这样它们就不会被复制到生产服务器(这些文件具有暂存环境的特定内容)。
  • 打开 WinSCP 并转到生产服务器上的 Web 根目录,然后将主索引文件切换为“正在进行的更新”,这样如果任何访问者访问该站点,他们就会收到一条消息,说它暂时关闭。
  • 然后使用 WinSCP 从我的 PC 复制到生产 Web 服务器(这会覆盖服务器上的所有现有文件),大约需要 4 分钟才能看到有很多文件。
  • 使用 SSH 登录生产服务器并运行大约 5 个命令来为各种可写目录设置适当的权限,并确保所有内容仍在 www-root 组下。我认为使用 SSH 的上传过程会更改所有现有权限。
  • 将“正在进行的更新”索引文件切换回正常索引。

整个过程非常复杂,大约需要 5-10 分钟,我每次对网站进行更改时都必须这样做,因此它变成了一件苦差事。

现在有没有办法使用一些脚本工具来自动化这个过程?或者是否有一个很好的部署工具,人们可以使用它来完成所有这些工作?我的临时和生产机器是基于 Ubuntu 12.04 服务器的,所以我可能可以使用 bash 脚本来完成一些工作。

我可以看到到目前为止可以进行的一些改进是:

  • 向我的网站添加一些代码,以便它检测它是在 Staging 还是 Production 中,然后根据环境使用原始或缩小的 CSS/JavaScript 文件。这将节省我手动交换文件。
  • 使用命令行 YUI 压缩器并在需要时从脚本文件运行它。
  • 使用类似 rsync 的东西,这样它只会将更改的文件从我的登台服务器复制到生产服务器,而不是覆盖每个文件

我工作过的一家公司使用Fabric 命令行工具来自动化部署和做这种事情。但是,这是一个不错的选择还是有更好的工具?

linux ssh deployment rsync fabric

5
推荐指数
1
解决办法
1984
查看次数

带有私钥公钥对的 Vim SCP 参数

目前,我正在尝试使用 Vim 的内置 netrw 插件编辑远程服务器上的文件。我可以使用如下命令通过 SSH 连接到我的 Amazon EC2 服务器:

ssh -i <keyfile> bitname@<ec2-address>
Run Code Online (Sandbox Code Playgroud)

但是,我希望能够使用我自己的 Vim 配置,并且一直在尝试像这样使用 scp:

:e scp://user@<ec2-address>//
Run Code Online (Sandbox Code Playgroud)

但是如果没有参数来输入我的密钥文件,我会收到一个权限被拒绝(公钥)错误。

是否有参数可用于输入我的密钥文件或我忽略的其他解决方案?

提前致谢,

ssh vim scp private-key amazon-ec2

5
推荐指数
1
解决办法
2368
查看次数

X11 转发适用于使用 Xming 和 Putty 的 Windows,但不适用于 ssh 命令行

我有一个微型 Amazon 实例,我想用它进行测试,在标题之前一切都很好。如果我在 PuTTy 中设置了所有信息,打开它并运行“xclock”,一切都会完美运行,并在我本地桌面上的 Xming 上打开。但是,如果我跑

ssh xxxxxxx.amazonaws.com xclock
Run Code Online (Sandbox Code Playgroud)

我得到

Error: Can't open display:
Run Code Online (Sandbox Code Playgroud)

如果我运行

ssh xxxxxxx.amazonaws.com -X DISPLAY=localhost:0:0 xclock
ssh xxxxxxx.amazonaws.com -Y DISPLAY=localhost:0:0 xclock
Run Code Online (Sandbox Code Playgroud)

我再次得到同样的结果,但只是在大约 30 秒的延迟之后。

在 Windows 中的 .ssh/config 中,我确实有

ForwardX11 yes
Run Code Online (Sandbox Code Playgroud)

设置,我真的想不出更多的东西来让它工作。PuTTy 运行良好,无论我在命令行上做什么,我都没有任何乐趣,这让我发疯。

我什至可以看到 PuTTy 在某处运行的命令,看看它是否在做一些额外的魔术?

我在 Windows 中运行的 ssh 是 MinGW32 的。

ssh putty x11forwarding

5
推荐指数
1
解决办法
3511
查看次数

术语混淆 SSH、Shell、终端、命令提示符和 Telnet

如果可以的话,我通常不会使用 SSH,但是如果我必须这样做,我当然会这样做,而且我似乎已经这样做了多年,但仍然对这些不同的术语感到有些困惑......来自我的基础研究,这是我的理解,有人可以验证/纠正吗?

  • Telnet ... 在 SSH 之前,不安全
  • SSH ...(安全外壳)系统/协议的通用名称
  • Shell ... SSH 的简称
  • 命令行/命令提示符... windows 版本
  • 终端... Unix 版本,也被苹果使用。

另外两个问题:

  1. Linux 版本一般叫什么,是只叫 SSH 吗?
  2. 什么是bash?

编辑...不是 100% 相信我上面问题的结构...请注意,上面的定义在一定程度上有点偏离,请参阅下面的答案以获得更好的定义

ssh shell command-line-interface terminal telnet

5
推荐指数
2
解决办法
1158
查看次数