当我使用它时ssh username@IP
,它可以工作,然后我可以使用它 cd
来导航到 /path/dir
当我使用ssh username@IP:/path/dir
它时不起作用。
错误信息是:
ssh: Could not resolve hostname IP:/path/dir: Name or service not known
如何才能ssh username@IP:/path/dir
在所需的目录中打开?
rsync
我需要它通过 ssh 隧道连接到特定目录。
答案1
SSH 和命令
如何让 ssh username@IP:/path/dir 在所需目录中打开?
如果你想ssh
进入给定的路径,你可以使用:
ssh USER@SERVER -t "cd /path/dir; bash --login"
或者
ssh -i /PathToKey -p PORT USER@SERVER -t "cd /path/dir; bash --login"
或者
ssh -i /PathToKey -p PORT USER@SERVER -t "cd /path/dir; $SHELL --login"
-i
如果您使用公钥身份验证-p
如果您在 sshd_config 中设置了端口-t
保持用户交互的连接- 是
"command"
在引号中 - 命令1+2|并启动
bash --login
后需要保持连接cd
bash
- 命令3|需要在启动用户首选程序
$SHELL --login
后保持连接cd
shell
通过 SSH 进行 RSYNC
我需要这个来通过 ssh 隧道 rsync 到特定目录。
您会rsync
在远程计算机本身上运行吗?
在远程计算机上运行rsync
后,但您需要什么进入路径?ssh
cd
如果您想rsync
从本地到远程或从远程到本地计算机运行。
传输文件的一般语法
rsync
如下:
Local to Remote: rsync [OPTION]... -e ssh [SRC]... [USER@]HOST:DEST
Remote to Local: rsync [OPTION]... -e ssh [USER@]HOST:SRC... [DEST]
从local to remote
:
rsync -a /localpath/file user@server:/remotepath/
从remote to local
:
rsync -a user@server:/remotepath/file /localpath/
保险丝/SSHFS:
用于sshfs/fuse
在本地机器上挂载远程路径并在本地机器上使用rsync
或cp
SCP
用于scp
复制/传输 remote to local
或者local to remote
scp [OPTION] [user@]SRC_HOST:]file1 [user@]DEST_HOST:]file2
我个人使用并且更喜欢fuse/sshfs
答案2
如何才能
ssh username@IP:/path/dir
在所需的目录中打开?
一点也不。ssh
是一种远程shell访问方法和网络转发工具;它不会“打开目录”或类似的东西。
您似乎将其与scp
or混淆了rsync
。ssh
本身没有语法可以像您想要的那样更改工作目录,在这里。
然而,
我需要这个来
rsync
通过 ssh 隧道到达特定目录。
这是没有意义的,rsync
不关心ssh
服务器端运行的任何内容的工作目录。隧道rsync
只是意味着隧道网络数据包。
所以,你想做的事情没有必要,也没有帮助。