相关疑难解决方法(0)

SCP 失败且没有错误

一段时间以来,我一直在经历 SCP 非常奇怪的行为:每当我尝试复制文件时,SCP 的输出都包含一堆下划线,并且文件没有被复制。

$ scp test.txt 192.168.0.2:~
job@192.168.0.2's password: 
 ________________________________________
Run Code Online (Sandbox Code Playgroud)

当我使用 Midnight Commander 创建 SSH 连接并复制文件时,它确实有效。

关于我的机器的一些信息:

$ ssh -V
OpenSSH_5.8p1 Debian-1ubuntu3, OpenSSL 0.9.8o 01 Jun 2010

$ uname -a
Linux squatpc 2.6.38-10-generic #46-Ubuntu SMP Tue Jun 28 15:05:41 UTC 2011 i686 i686 i386 GNU/Linux
Run Code Online (Sandbox Code Playgroud)

我正在运行 Kubuntu 11.04。

编辑:根据评论的要求提供更多信息:

$ scp -v test.txt 192.168.0.2:~
Executing: program /usr/bin/ssh host 192.168.0.2, user (unspecified), command scp -v -t -- ~
OpenSSH_5.8p1 Debian-1ubuntu3, OpenSSL 0.9.8o 01 Jun 2010
debug1: Reading configuration data …
Run Code Online (Sandbox Code Playgroud)

scp

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

ssh-ing 到 ec2 服务器时如何修复无限 bash 循环(bashrc + bash_profile)?

我错误地.bash_profilebashrc文件中有源,反之亦然。现在,当我尝试通过 ssh 进入机器 (ec2) 时,它会卡在加载 bash 并在一秒钟内关闭连接。有什么办法可以修复它吗?我可以将磁盘挂载到另一个 ec2 实例来修复 bash 文件吗?


更新 1:我尝试了以下操作:

%  ssh -i "my-pem.pem" -t ubuntu@<server_address>.amazonaws.com "/bin/bash --noprofile --norc"
Connection to <server_address>.amazonaws.com closed.
Run Code Online (Sandbox Code Playgroud)

其他什么都没有出现。你知道出了什么问题吗?

对于健全性检查,如果我这样做ssh -i "my-pem.pem"ubuntu@<server_address>.amazonaws.com,消息将是

...

28 packages can be updated.
0 of these updates are security updates.
To see these additional updates run: apt list --upgradable

New release '20.04.2 LTS' available.
Run 'do-release-upgrade' to upgrade to it.


Last login: Mon Feb 22 23:17:41 2021 from ip
Connection to …
Run Code Online (Sandbox Code Playgroud)

bash ssh amazon-ec2

7
推荐指数
3
解决办法
960
查看次数

为什么没有这样的非交互式版本的 bashrc?

据我了解,守护进程是后台进程,但守护进程需要唯一的配置文件来设置环境变量。

例如,Hadoop守护进程需要hadoop-env.sh来设置环境变量JAVA_HOME,你不能简单地从中获取变量~/.bashrc

原因是因为守护进程作为后台进程意味着它是非交互式的,而 ~/.bashrc 意味着仅在交互式会话中使用,以防止出现alias cp='cp -i'case

最新的~/.bashrc文件顶部有安全防护不允许非交互式调用者,即没有-i选项将提前返回:

# ~/.bashrc: executed by bash(1) for non-login shells.
# see /usr/share/doc/bash/examples/startup-files (in the package bash-doc)
# for examples
# If not running interactively, don't do anything
case $- in
    *i*) ;;
      *) return;;
esac
Run Code Online (Sandbox Code Playgroud)

这让我想知道为什么 bashrc 不将配置文件分为 3 组,例如:

  • ~/.bashrc_interactive

  • ~/.bashrc_non_interactive

  • ~/.bashrc_global #(交互式和非交互式)

因此用户只需JAVA_HOME~/.bashrc_non_interactive或中设置即可~/.bashrc_global,无需在每个守护程序文件中一遍又一遍地添加此环境变量。

是否有任何原因或限制 bashrc 不支持这种方式或任何其他方式的非交互式?或者我误解了一些概念?

environment-variables history interactive daemon bashrc

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

scp 成功将文件传输到主机,但文件不会显示

我正在尝试将文件从本地机器传输到远程机器。

当我scp不带-v选项使用时,它只提供以下输出:

.--. or '\033[0;1;33;93m.-\033[0;1;32;92m-.\033[0m'
Run Code Online (Sandbox Code Playgroud)

当我尝试scp使用-v选项时,我得到以下输出,似乎文件传输成功:

——

$ scp -v file.sh  user@IP:/home/user/foo

debug1: channel 0: new [client-session]
debug1: Requesting no-more-sessions@openssh.com
debug1: Entering interactive session.
debug1: pledge: network
debug1: Sending environment.
debug1: Sending env LC_PAPER = tr_TR.UTF-8
debug1: Sending env LC_ADDRESS = tr_TR.UTF-8
debug1: Sending env LC_MONETARY = tr_TR.UTF-8
debug1: Sending env LC_NUMERIC = tr_TR.UTF-8
debug1: Sending env LC_ALL = en_US.UTF-8
debug1: Sending env LC_TELEPHONE = tr_TR.UTF-8
debug1: Sending env LC_IDENTIFICATION = tr_TR.UTF-8 …
Run Code Online (Sandbox Code Playgroud)

scp

4
推荐指数
1
解决办法
7383
查看次数

为什么我的新 cygwin .bashrc 交互式检查不起作用?

我刚刚更新了 Cygwin,新的.bashrc在顶部包含这一行:

echo "BEFORE TEST"
# If not running interactively, don't do anything
[[ "$-" != *i* ]] && return
echo "AFTER TEST"
Run Code Online (Sandbox Code Playgroud)

我明白如果不运行交互式,你不需要做任何事情,但我的问题是,如果我ssh使用命令:

ssh localhost pwd
Run Code Online (Sandbox Code Playgroud)

我看到这个:

BEFORE TEST
Run Code Online (Sandbox Code Playgroud)

所以,很明显,它没有通过[[ "$-" != *i* ]]测试并返回。显然ssh localhost pwd是一个微不足道的例子,但我希望.bashrc如果通过ssh. 我的实际自动化针对这个 cygwin 实例远程运行命令并且失败,因为路径(由 my 设置.bashrc)没有正确设置。

此外,任何人都可以解释该测试实际上在做什么吗?什么是i?什么是$-应该代表什么?

bash ssh cygwin sshd

3
推荐指数
1
解决办法
784
查看次数

scp 打印一些奇怪的字符并且不复制文件

我正在尝试使用 scp 从网络中的另一台计算机复制一个小文件,该计算机运行的是 Linux Mint 18.3。

我从 macOS 尝试过,我得到了这个:

$ scp fyde@192.168.1.211:/home/fyde/Downloads/notes/ubuntu.txt .                          
fyde@192.168.1.211's password:
\033]4;0;#2b1229\033\\033]4;1;#FFD36D\033\\033]4;2;#6559B6\033\\033]4;3;#E1549E\033\\033]4;4;#788FA3\033\\033]4;5;#778BE1\033\\033]4;6;#D88AA7\033\\033]4;7;#d2d8d2\033\\033]4;8;#939793\033\\033]4;9;#FFD36D\033\\033]4;10;#6559B6\033\\033]4;11;#E1549E\033\\033]4;12;#788FA3\033\\033]4;13;#778BE1\033\\033]4;14;#D88AA7\033\\033]4;15;#d2d8d2\033\\033]10;#d2d8d2\033\\033]11;#2b1229\033\\033]12;#FFD36D\033\\033]13;#d2d8d2\033\\033[s\033[1000H\033[8m\033]708;#2b1229\033\\033[u\033]13;#d2d8d2\033\C0644 6743 ubuntu.txt
Run Code Online (Sandbox Code Playgroud)

我在 Ubuntu 机器上尝试过,但得到了类似的结果:

$ scp fyde@192.168.1.211:/home/fyde/Downloads/notes/ubuntu.txt .
fyde@192.168.1.211's password:
C0644 6743 ubuntu.txt
Run Code Online (Sandbox Code Playgroud)

我尝试了不同的文件,得到了相同的结果,从其他计算机复​​制工作正常。

有谁知道发生了什么?

scp

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