
每天都要同时操作 AWS 、Oracle Cloud 等云服务器,上传文件、改配置非常频繁。最大的问题就是:
rootsudoscp + sudo 搞半天,真是折磨Windows 下我一直用 MobaXterm,真是丝滑到飞起:
sudo 按钮这个功能看似不起眼,但如果你每天要上传几十上百次文件,你就会明白:
MobaXterm = 劳动生产力爆表
现在我在用 macOS ,开始折腾 iTerm2
感觉肯定能搞出方案,但暂时没调出 “MobaXterm 那种一键 sudo 上传” 的丝滑体验。
所以问题来了:
1️⃣ 如何在 iTerm2 里实现类似 MobaXterm 的 sudo 文件传输?
2️⃣ 有没有:
能让上传文件:
无脑直接走 root ,不用手动 sudo chmod scp ?
看了下 主要还是 终端模拟器,ssh 是附带的(
]]>管理 vps 特别需要
但是服务器安装了 mosh ,mac 连接就显示蓝色屏
mosh: Nothing received from server on UDP port 60001. [To quit: Ctrl-^ .]
啥原因,我看好多人也发这个
请大佬帮忙看,服务器支持 udp ,也安装 gpt 一些方式确认了 什么防火墙关闭啥的
就是客户端连不上服务器那边
]]>昨天乘着配置新环境的机会, 搜索了一下解决方案, 选择了 OSC 52.
OSC 是 Operating System Command 的缩写, 其约定了一系列特殊符号的含义. OSC 52 是其一个子类, 用于控制系统剪贴板. 我们引用 tmux 的文档来总结其原理:
Some terminals offer an escape sequence to set the clipboard. This is one of the operating system control sequences so it is known as OSC 52.
The way it works is that when text is copied in tmux it is packaged up and sent to the outside terminal in a similar way to how tmux draws the text and colours and attributes. The outside terminal recognises the clipboard escape sequence and sets the system clipboard.
当前大部分的终端都已经支持了这项功能, 当你在终端执行 echo -en "\e]52;c;$(base64 <<< OSC)\a" 后再黏贴可以看到 OSC 这三个字符串.
OSC 52 在 tmux 中的定义是 \033]52;%p1%s;%p2%s\a, 其中各项的含义是:
\033 是一个八进制表示的 27, 对应控制符号 ESC. 我们也可以使用 \x1B(十六进制) 或 \e(简写). ]52 代表 OSC 52%p1%s 是 tmux 的占位符, 实际使用时 c 代表剪贴板%p2%s 对应 base64 后的剪贴内容.\a 是控制字符 BEL 的缩写, 也可以使用 \x7 或 \07.我在 iterm2 中使用 tmux, 参考 tmux 的官方文档, 可以知道关键的几项设置:
tmux info | grep Ms, 设置方式为 set-option -as terminal-overrides ",xterm-256color:clipboard"set -g set-clipboard ontmux source-file 更新配置需要额外谈的是 set-clipboard, 文档推荐的设置是 external, 但我选择的是 on. 二者的区别在于 on 允许 tmux 和 tmux 内的应用设置剪贴板, external 仅允许 tmux 设置剪贴板. 所以当我通过 ssh 访问开发机并希望在开发机内访问本机的剪贴板时需要将 set-clipboard 设置为 on.
最后通过 remote-pbcopy-iterm2 将 OSC 52 的逻辑封装成了命令 pbcopy.
]]>不像换终端工具,虽然 Kitty 本身有 Kitten 可以进行一些拓展,但是没有相关经验,如果能提供相关指导也可
]]>其他节点连接 nat 鸡 ssh 正常
问了 gpt 没找到靠谱的答案
]]>公司 windows 原生 git for windows 附带的 ssh, 未做任何修改
]]>学校的服务器是通过 ssh 和终端访问的。我在跑一个项目的时候,发现需要从 hugging face 下载一堆的模型(~50GB ),然而服务器受到神秘力量的影响并不能做到。请问各位大佬有没有比较成熟并且不折腾的方案解决这个问题?
]]>1.本地终端如 Microsoft terminal 可以正常 ssh 连接
2.同步对比软件 beyond compare 无法连接此服务器,但是可以正常连接其他老的 centos 服务器
3.还是怀疑是我 beyond compare 版本太老了,下了最新的 beyond compare4 ,可以正常连接
4.sshd 我开启了密码和密钥都可以认证,为啥 beyond compare3 还是不能连接,我就开启了日志 debug 模式,看看发生什么问题,发现在 SSH2_MSG_KEXINIT sent 后就直接关闭了,下面是日志,而本地客户端是看不到日志的,我查了下有说让我重新生成一下 ssh_host*,有的说 mtu 设置不对。试了都不行。
2023-11-13T15:50:26.806667+08:00 xxxxx sshd[222683]: debug1: Forked child 222693.
2023-11-13T15:50:26.807145+08:00 xxxxx sshd[222693]: debug1: Set /proc/self/oom_score_adj to 0
2023-11-13T15:50:26.807247+08:00 xxxxx sshd[222693]: debug1: rexec start in 4 out 4 newsock 4 pipe 6 sock 7
2023-11-13T15:50:26.816725+08:00 xxxxx sshd[222693]: debug1: inetd sockets after dupping: 4, 4
2023-11-13T15:50:26.816825+08:00 xxxxx sshd[222693]: Connection from 1.1.1.1 port 62336 on 2.1.1.1 port 10011 rdomain ""
2023-11-13T15:50:26.816891+08:00 xxxxx sshd[222693]: debug1: Local version string SSH-2.0-OpenSSH_9.2p1 Debian-2+deb12u1
2023-11-13T15:50:26.824087+08:00 xxxxx sshd[222693]: debug1: Remote protocol version 2.0, remote software version Beyond
2023-11-13T15:50:26.824194+08:00 xxxxx sshd[222693]: debug1: compat_banner: no match: Beyond
2023-11-13T15:50:26.825178+08:00 xxxxx sshd[222693]: debug1: permanently_set_uid: 101/65534 [preauth]
2023-11-13T15:50:26.825337+08:00 xxxxx sshd[222693]: debug1: list_hostkey_types: rsa-sha2-512,rsa-sha2-256,ecdsa-sha2-nistp256,ssh-ed25519 [preauth]
2023-11-13T15:50:26.825398+08:00 xxxxx sshd[222693]: debug1: SSH2_MSG_KEXINIT sent [preauth]
2023-11-13T15:50:26.833071+08:00 xxxxx sshd[222693]: Connection closed by 1.1.1.1 port 62336 [preauth]
2023-11-13T15:50:26.833245+08:00 xxxxx sshd[222693]: debug1: do_cleanup [preauth]
2023-11-13T15:50:26.833372+08:00 xxxxx sshd[222693]: debug1: monitor_read_log: child log fd closed
2023-11-13T15:50:26.833414+08:00 xxxxx sshd[222693]: debug1: do_cleanup
2023-11-13T15:50:26.833454+08:00 xxxxx sshd[222693]: debug1: Killing privsep child 222694
2023-11-13T15:50:26.833487+08:00 xxxxx sshd[222693]: debug1: audit_event: unhandled event 12
但是感觉太厚重了。
]]>ssh 登入后再执行,PATH 就正常了,请大家帮忙看看问题在哪呢
aaron@Aaron-PC:~$ ssh 192.168.2.11 'export' declare -x HOME="/var/services/homes/aaron" declare -x LOGNAME="aaron" declare -x MAIL="/var/mail/aaron" declare -x OLDPWD declare -x PATH="\$PATH:/usr/local/bin" declare -x PWD="/volume2/homes/aaron" declare -x SHELL="/bin/ash" declare -x SHLVL="1" declare -x SSH_CLIENT="192.168.2.97 57086 22" declare -x SSH_COnNECTION="192.168.2.97 57086 192.168.2.11 22" declare -x USER="aaron" ]]>我在 StackOverflow 看到很多类似的问题,比如How to send data to local clipboard from a remote SSH session,但感觉这些方案都有点麻烦。
我目前使用的终端是 Kitty ,所以也接受 terminal-specific 的方案。
大家目前是使用什么方案?
]]>不敢 /不允许使用 public key 免密登录.
linux 环境.
最好能兼容 ssh config. 不输入密码.
类似 windows 下面的 tabby. 但是是 cmd 工具 有推荐吗?
sshpass 我也没试验成功, 连跳四次...
]]>ssh突然无法使用了: ssh -vv xxx@23.xx.xx.xx 显示debug1: Connecting to 23.xx.xx.xx [23.xx.xx.xx] port 22后一直在等待连接。
能 ping 通;nc -vz 23.xx.xx.xx 22也是没有结果,但是测试其他端口(如 443 是正常的)。另一方面,我通过在线的端口检测工具(如yougetsignal)显示 22 端口是开放的。
我估计是我自己网络的问题,这应该如何诊断呢?
]]>结果手机上可以顺利连接,电脑上就卡在 connection time out
服务器的 ip 和域名 ping 都是通的,防火墙也开放了端口
百思不得其解,求大神指引
]]>我已经配置了.ssh/config,并配置了公钥:
Host manjaro HostName remote.xx.xx User xxx ProxyCommand cloudflared access ssh --hostname %h 所以能够直接在终端里面直接使用ssh manjaro访问;我试着在 iTerm2 里面添加一个 Profile ,在command那里选择command,并填写了ssh manjaro,

但是当打开这个 Profile 时,就会报错:
command not found: cloudflared
请问应该如何配置 Profile ?
]]>ssh 命令行的优先级高于配置文件,所以目前在我配置 gitlab 的私钥文件之后,可以通过命令行指定 -o PreferredAuthenticatiOns=password -p 122 来登录,但是我想要在配置文件中指定不同端口采用不同的策略,或者可能是不同端口使用不同的私钥文件登录。
搜了一大圈没有找到有类似解决方案,manual 里也没发现,各位大佬有没有懂怎么操作的。
]]>就是服务器需要秘钥+google 二次验证. 以前需要另开一个窗口的话如果使用 xshell 可以直接使用"复制 ssh 渠道"就可以在新窗口共用一个连接渠道,不用再次输入 google 验证码. mobaxterm 竟然不支持吗?
]]>有什么好的办法直接禁止 ssh 走代理吗,访问我的新加坡机器,走代理会很卡
]]> ssh -p 22 -t root@111.132.132.65 "tmux -CC attach || tmux -CC" 这个 t 参数是什么含义,远程登录后执行的命令内容?试了下如果不写还不行,--help 查看命令手册,没看到有 t 这个参数

本地转发相当于就是访问LOCAL_IP:LOCAL_PORT就变成访问DESTINATION:DESTINATION_PORT
ssh -L [LOCAL_IP:]LOCAL_PORT:DESTINATION:DESTINATION_PORT [USER@]SSH_SERVER 远程转发相当于访问REMOTE:REMOTE_PORT就变成访问DESTINATION:DESTINATION_PORT
ssh -R [REMOTE:]REMOTE_PORT:DESTINATION:DESTINATION_PORT [USER@]SSH_SERVER 这样理解对吗?
有点不太理解是远程转发的REMOTE指的是哪个?是 ssh client 所在机器吗?
然后本地转发的时候,SSH_SERVER也可以就是DESTINATION,而远程转发的时候,REMOTE也可以就是DESTINATION?
-Dfile.encoding=utf-8 试了一下,发现中文不乱码了, 但是同事说,他昨天也启动过这个 java 进程,中文并没有乱码,并且这期间也没有修改过服务器的任何配置,(同事使用的是 win 的 xshell ),我感觉非常奇怪,基本可以排除服务器的关系,似乎是和使用的终端有关。
于是我移除了 -Dfile.encoding=utf-8 参数,使用 Termius.app 这个工具登录了服务,启动这个 java 进程观察,发生也是没有乱码的。
到此,基本可以确定,不同的终端的确是影响的服务器的一些环境变量了。
于是我写了一个小测试类。用两个终端登录服务器后,执行。
public class Test{ public static void main(String[] args){ System.out.println(System.getProperty("file.encoding")); System.out.println("测试中文是否乱码"); } } 测试结果一:
ANSI_X3.4-1968
????????
测试结果二:
UTF-8
测试中文是否乱码
后来查资料发现,ssh 登录的时候,默认会把本地的 locale 发送到服务端,而我本地没有配置这个变量,默认值是 UTF-8,服务端也不认识,就出现了乱码。
不可行的方案:
学校 VPN:由于一些原因,我室友也在用我的账号上网。如果网管发现我同时异地使用 VPN 和内网,就会知道我把账号外借,查我水表(已有先例)。
Teamviewer 之类:理论可用,但届时大概率无法保证网速。
自己有一台群晖也放在学校内网,正在研究如何配置做跳板用。但想先请问各位大佬,有没有更简单的办法?
]]>
]]>C:\Windows\System32\OpenSSH\ssh.exe -V OpenSSH_for_Windows_8.1p1, LibreSSL 3.0.2
直接通过 Windows Update 更新即可。
默认包括的命令有:
scp.exe
sftp.exe
ssh-add.exe
ssh-agent.exe
ssh-keygen.exe
ssh-keyscan.exe
ssh.exe
当然也可以安装 Server 端:
Add-WindowsCapability -Name 'OpenSSH.Server~~~~0.0.1.0' -Online ]]>