ここで他の質問や、のさまざまな「scpの使用法」チュートリアルを見て回りました。インターネットですが、何が問題なのかを分類できません。
Linux Mintを使用していて、 scp は機能します。
ファイル file.ext (私のコンピューター上)ディレクトリ / home / name / dir /
に接続します ssh を使用するリモートマシン:
ssh -p 2222 username@domain
パスワードを尋ねられ、シェルが表示されます:
username@domain ~ $
コマンドを発行すると(sshを実行する前はローカルディレクトリ
/ home / name / dir ):
scp -r -P 2222 file.ext username@domain
出力は:
cp: cannot stat ‘file.ext’: No such file or directory
file.extの代わりに完全なパスを書き込んだ場合も同じ結果です
scp -r -P 2222 /home/name/dir/file.ext username@domain
また、サーバー管理者は、ファイルをリモートホームディレクトリにアップロードするように指示しました(ルートの代わりに)次のようになります:
scp -r -P 2222 file.ext username@domain:~/
しかし、それを実行して「Enter」を押すと、シェルがさらなる入力を待っているかのように何も起こりません。
問題の概要:
- cp:そのようなファイルやディレクトリはありません
- シェルが〜/
ulに「スタック」しています>
何か提案はありますか?
コメント
回答
コマンド。 ssh
はまったく必要ありません:
dragonmnl@local $ scp -P 2222 file.ext username@domain:~/
:
-r Recursively copy entire directories.
すでにリモートマシンにログインしていて、ローカルからコピーする場合は、次のようにする必要があります。ローカルマシンがインターネット経由でアクセス可能であり、ssh
が設定されていることを確認してください。私はこれがあなたが求めているものではないと思いますが、もしそうなら、リモートからこれを実行してください:
username@domain $ scp dragonmnl@local:/path/to/file.ext ~/
コメント
- ありがとうございます。問題は、sshセッション内でscpを実行しようとしていたことでした。現在は機能しています!
回答
リモートマシンとローカルマシン間でファイルをアップロード/ダウンロードする2つの方法を提供します(Mac Airを使用します):
この場合、11.jpeg
:
-
サービス上のファイルをローカルディレクトリにコピーする:このコマンドを実行するには、sshにいるときではなく、ローカルのbashターミナルにいる必要があります!
scp username@domain:/home/xxx/xxx/11.jpeg /Users/username/Desktop/
ローカルディレクトリのファイルをコピーリモートサービス:ローカルbashターミナルにいる必要があります
scp /Users/username/Desktop/11.jpeg username@domain:/home/xxx/xxx
-
SSHにログインするときに同じ意図を実現するには、最初に「」を設定する必要があります。システム設定>共有>リモートログイン>すべてのユーザー( “すべてのユーザー”に設定する必要がありますが、この状況では機能します)」Macは”このコンピューターにリモートでログインするには、次のように入力します。
ssh username@xxxxxx, then type in the command below: scp username@domain:/home/xxx/xxx/11.jpeg username@xxxxxx:/Users/username/Desktop/**
上記のコマンドはファイルをダウンロードするためのものですsshにログインしているときにリモートからローカルに、ファイルをアップロードするときに2つのパスを変更するだけです。
コメント
- 最後に、Filezillaはおそらく日常業務で最も便利なものだと思います~~
回答
scp
コマンドを使用
フォルダを転送する場合は、最初にzip
して、後でunzip
できます。
コンピューターから、次のコマンドを実行します。
$ scp your_path_to_the_file/the_file [email protected]:~/
ここでは、root
がアカウントで、10.145.198.100
がアカウントです。リモートサーバーのIPアドレス。the_file
をリモートの~/
フォルダーにコピーします。
ファイルの解凍:
$ unzip the_zip_file.zip -d destination_folder
コメント
- なぜ
root
リモートマシンでSSHアクセスさえありますか?その’はかなり安全ではありません。通常の使用法を使用してから、sudo
を使用してそのマシンでrootが実行する必要のあるすべてのことを実行することをお勧めします。
回答
リモートマシンでこのscpコマンドを実行している場合、file.ext
を「ローカル」ファイルとして検索します。リモートマシン上のdivid = “3fc9268a4d”>
。
リモートマシンからローカルマシンにファイルをコピーするには、scp -P 2222 username@domain:dir/file.ext localdir
(例のように、file.ext
がリモートコンピューターの~/dir
にあると仮定します) 。リモートマシンでscp
を実行する場合は、「ローカル」と「リモート」を逆にします。
コメント
- OPはローカルからリモートにコピーしたい。OP’のタイトルを参照してください。
- おっと、あなただと思います’正解です。しかし、彼は’明らかに逆行しています…
回答
ほんの少しの貢献で、私のような初心者に役立つかもしれません。リモートディレクトリへのパスは次のように書く必要があります:username@domain:~/remote_directory
ここで強調したいのは、常にその:~/
回答
LinuxクライアントからLinuxサーバーにファイルをコピーするソリューション
-
ps aux | grep sshd
- を使用して、サーバーで
sshd
が実行されているかどうかを確認します。 >そうでない場合は、sudo apt-get install openssh-server openssh-client
https://www.tecmint.com/install-openssh-server-in-linux/
をインストールします
サーバーを再起動し、iv id = “a75d35a29c”を使用して、sshd
が実行されていることを確認します。 >
必要に応じて、/etc/ssh/sshd_config
ファイルを構成できますが、単純な構成では必要ありません
そのことを確認しますeポートはnetcat
を使用して開いています:nc -v -z 127.0.0.1 22
クライアントからLinux
クライアントは次のようにscpを使用しますscp ~/filename.md [email protected]:~/folder/filename.md
ファイルがコピーされたことを確認するには、ssh [email protected]
を使用して、パスワードを入力します。
LinuxクライアントからWindowsにファイルをコピーするソリューション
-
SSHを実行するための複数のクライアントがあります次のようなWindows上のサーバー:
-
上記のサーバーのいずれかをインストールし、ポート22が開いていることを確認します
netsh advfirewall firewall add rule name="SSH Port 22" dir=in action=allow protocol=UDP localport=22 netsh advfirewall firewall add rule name="SSH Port 22" dir=out action=allow protocol=UDP localport=22
netsh advfirewall firewall add rule name="SSH Port 22" dir=in action=allow protocol=TCP localport=22 netsh advfirewall firewall add rule name="SSH Port 22" dir=out action=allow protocol=TCP localport=22
netsh advfirewall set allprofiles state off
-
これらのサーバーの比較:
BitviseSSHサーバー
-
ネイティブの
cmd
プロンプト、powershell
プロンプト、オートコンプリートにほぼ近いものを提供します -
高度な使用法が必要な場合は、カスタマイズのための追加機能を提供します
-
単純なニーズのためのユーザーカスタマイズは0です。多くの時間を費やした後、2分以内に開始しました
MobaSSH
とOpenSSH
を機能させようとしています。 -
scpを使用してファイルをコピーするには使用:
scp ~/filename.md [email protected]:/C/Users/username/filename.md
-
個人使用は無料、業務用は99ドル。非常に多くの機能と優れた統合により、価格はお金に見合う価値があります。
MobaSSH:
-
Linuxを提供します
ls
、cp
、find
などの単純なLinuxコマンドが含まれるWindows上のシェル。、work、MINGW64
-
cmd
およびcmd
またはpowershell
-
Unicodeのサポートが不十分です。エンコーディングが正しくありません。たとえば、
Python
インタプリタを起動しようとすると、クラッシュします。 ( https://stackoverflow.com/a/12834315/4752883 )を使用してエンコードを手動で変更する必要があります:chcp 65001
set PYTHONIOENCONDING=utf-8
次にPythonプロンプトを起動する -
MobaSSHの優れている点は、非常にシンプルなユーザーインターフェイスと
scp
とssh
がうまく統合されています。したがって、単純な使用例で機能します -
Linuxクライアントから
MobaSSH
を実行しているWindowsサーバーにファイルをコピーするには:これは、 MobaSSH
がCygwinに基づいており、そのドライブが同じ方法でマップされているためですcygwin
– sドライブがマップされます。
https://developer.microsoft.com/en-us/microsoft-edge/tools/vms/ 、OpenSSHv6.7はすでにインストールされています。
-
非常にバグが多いため、大幅にカスタマイズする必要があります。
-
コマンドの完了が機能しない
-
端末でカーソルを移動すると、空白が残ります
-
Pythonが機能しない
-
OpenSSHの新しいバージョンでは、改良されている可能性があります。さらに、MSはOpenSSHをオプション機能” https://developer.microsoft.com/en-us/microsoft-edge/tools/vms/
-
回答
OSXを使用している場合…
username @ local:/ file_directoryで実行しようとすると…
次のエラーが発生しました:
ssh: local: node name or service name not known
解決策
Macで、ローカルのssh
をセットアップするには、次の手順を実行する必要がありました。
システム環境設定-> インターネット&ネットワーク-> 共有-> ENABLE リモートログイン
これにより、username @ipアドレスが提供されました。
回答
今日もMACで同じ問題が発生しました。
次のコマンドを入力します。
scp /local-file-path/ /-remote-location-path/
localuser@machineA: ssh -p 2222 username@domain
(machineAでlocaluserとしてsshコマンドを実行していることを示すため)scp
を使用する場合、 リモート側には常にコロンが含まれている必要があります(例:remotehost:/tmp
)。そうでない場合は、通常のコピー(scp /tmp/foo.txt example.com
は/tmp/foo.txt
をローカルファイルにコピーしますexample.com
)-r
フラグ。これは単一ファイルのコピーには必要ないため(再帰的にディレクトリをコピーするために使用される’)