当我跑
sudo do-release-upgrade
Run Code Online (Sandbox Code Playgroud)
通过 ssh,我收到以下消息。
此会话似乎在 ssh 下运行。不推荐 当前通过 ssh 执行升级,因为万一失败 更难恢复。 如果继续,将在端口启动一个额外的 ssh 守护进程 '9004'。 你要继续吗?
通过 ssh 升级的真正风险是什么?额外的 ssh 守护进程如何帮助缓解这种情况?
我有一个全新的 ubuntu 12.04 安装。当我连接到远程服务器时,出现如下错误:
~$ ssh example.com sudo aptitude upgrade
...
Traceback (most recent call last):
File "/usr/bin/apt-listchanges", line 33, in <module>
from ALChacks import *
File "/usr/share/apt-listchanges/ALChacks.py", line 32, in <module>
sys.stderr.write(_("Can't set locale; make sure $LC_* and $LANG are correct!\n"))
NameError: name '_' is not defined
perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
LANGUAGE = (unset),
LC_ALL = (unset),
LC_TIME = "de_DE.UTF-8",
LC_MONETARY = "de_DE.UTF-8",
LC_ADDRESS = "de_DE.UTF-8",
LC_TELEPHONE = "de_DE.UTF-8",
LC_NAME …Run Code Online (Sandbox Code Playgroud) 我想从活动的 SSH 会话下载文件。在许多情况下,我可能会只使用SFTP, scp,rsync等人,但也有在那里我有一个办法,我不能使用这些方法在远程服务器上提升的权限倍。
如果您难以理解我的意思,请想象您想从/root/或下载某些内容/var/log/auth.log。Root 登录被禁用(因为我们不是白痴)。你怎么得到那个文件?将它复制到不受保护的地方然后移动它?这很笨拙。也有远程路径复杂或临时的情况,或者甚至不是路径,因为我希望远程命令的输出存储在本地。远程存储,然后复制?笨拙!
有几种更笨拙的方法来实现这些版本,但在理想的世界中,我会使用现有的 SSH 会话作为管道,从远程服务器获得类似于本地写入访问的东西。像(这只是艺术家的印象):
$oli@remote: cp /root/cheesecake /local/
Run Code Online (Sandbox Code Playgroud)
它只出现在我的本地cwd. 双向访问也不是坏事。
我问这个问题已经八年了,我们已经看到了一系列真正的笨拙,但它仍然是一个我偶尔仍然在为之奋斗的问题。
我已经将这个问题重构为更加理想化的问题。我完全理解目前可能没有完美的答案。感谢过去和未来为我的理想所做的一切努力。
尝试在远程机器sudo上运行远程二进制文件时:
ssh remotehost "sudo ./binary"
Run Code Online (Sandbox Code Playgroud)
我看到这个错误:
sudo: no tty present and no askpass program specified
Run Code Online (Sandbox Code Playgroud)
我该如何解决这个问题?
有时,到我的服务器的 SSH 会话会冻结,然后Ctrl+C或Ctrl+\都不做任何事情。
如何退出会话而不只是关闭它所在的终端?
澄清:
会话被锁定,没有密钥传输到服务器。我想优雅地关闭它,这样用户就不再登录了。
我知道我可以杀死 SSH 客户端,但这会及时使2 users我收到的“ ”信息消息uptime毫无意义。我想知道有多少用户真正登录。
我试过:
rsync -v -v -e 'ssh -p YY' ./testfile me@XXXXX:/home
Run Code Online (Sandbox Code Playgroud)
错误信息
opening connection using: ssh -p YY -l me 146.6.84.206 rsync ->-server -vvve.s . /home
[sender] make_file(testfile,*,0)
send_file_list done
send_files starting
server_recv(2) starting pid=17537
rsync: connection unexpectedly closed (9 bytes received so far) [sender]
rsync error: error in rsync protocol data stream (code 12) at io.c(600)[sender=3.0.6]
_exit_cleanup(code=12, file=io.c, line=600): about to call exit(12)
Run Code Online (Sandbox Code Playgroud)
这工作正常:
ssh -p YY me@XXXXX
Run Code Online (Sandbox Code Playgroud)
这向我表明问题既不sshd是未运行也不是 YY 端口被防火墙设置。反正我查过了。
还会有什么问题?
编辑:问题似乎是“自我解决”。第二天我无法复制。我启动了本地计算机。也许值得注意的是,我的 IP 地址与上次不同。现在 rsync 神奇地起作用了。如果它消失了,我会很感激猜测它可能会是什么。
当我通过 ssh 连接到远程主机时,一切都只是一种字体/颜色。我想要像我在本地做的那样的颜色,例如绿色代表可执行文件,蓝色代表符号链接等。这样,当我在 ssh 主机上运行 $ git diff 时,它会显示我的颜色差异 =)
我在我的一台实验室服务器上运行了一个 Web 应用程序,并且我已经在这些机器上设置了 X11 转发。其他实验室成员可以通过 SSH 建立隧道,并在家里的本地浏览器上浏览该 Web 应用程序。
我不能。上次我和他们核对时,我几乎没有什么需要做的。
当我打字时,192.168.1.113/webapp我什么也得不到。
有小费吗?
谢谢。
我最终使用了第二种方法:)
ssh -L 8080:<server-ip-address>:80 <username>@<remote-addr> -N
Run Code Online (Sandbox Code Playgroud)