web-dev-qa-db-ja.com

ターミナルMac OS XのリモートへのSSH SCPローカルファイル

VPN経由でSSHを使用して、ローカルファイル「magento.tar.gz」をローカルマシンからリモートサーバーにコピーしようとしています。これは、ここでxx.x.x.xxとして使用した仮想マシンの内部IPに接続しています。

SSHアカウントに完全な「Sudo」アクセス権があるため、コピーしても問題はありません。私は次を試しました:

私は次のことを試しました(magento.tar.gzファイルは既にローカルルートディレクトリにあります)

Sudo scp magento.tar.gz [email protected]/var/www/

これにより、ローカルパスワードを入力するように求められます。その後、cp: [email protected]/var/www: Not a directoryを返します

Sudo scp /Users/myname/magento.tar.gz [email protected]/var/www/

同じものを返します。

どこかにSSHを含める必要がありますか?

最初にSSH経由でサイトに接続する必要がありますか?

サイドノート:SSH経由でサーバーに接続し、ディレクトリを参照してフォルダーを作成し、Sudo mkdirなどを使用して削除することができたので、間違いなくアクセス許可があります。

82
James

最初に、IPアドレスの後に:を追加して、パスが続くことを示す必要があります。

scp magento.tar.gz [email protected]:/var/www

Sudoscpにする必要はないと思います。この場合、リモートコマンドには影響せず、ローカルコマンドにのみ影響します。

その後、user@xx.x.x.xxが/var/wwwへの書き込みアクセス権を持っていない場合、2回でそれを行う必要があります。

ホームフォルダーのリモートサーバーにコピーします(:はリモートホームフォルダーを表し、必要に応じて:subfolder/を使用し、フルパスには:/home/user/を使用します)。

scp magento.tar.gz [email protected]:

次に、SSHしてファイルを移動します。

ssh [email protected]
Sudo mv magento.tar.gz /var/www
179
JScoobyCed

JScoobyCedによって与えられた答えを明確にするために、scpコマンドは管理者権限を必要とするディレクトリにファイルをコピーできません。ただし、scpコマンドを使用して、リモートユーザーに属するディレクトリにコピーできます。

そのため、ルート権限が必要なディレクトリにコピーするには、最初にscpコマンドを使用して、そのファイルをリモートユーザーに属するディレクトリにコピーする必要があります。次に、sshを使用してリモートアカウントにログインする必要があります。ログインしたら、Sudo mvコマンドを使用して、選択したディレクトリにファイルを移動できます。要するに、使用するコマンドは次のとおりです。

Scpを使用して、ファイルをリモートユーザーのアカウントのディレクトリ、たとえばDocumentsディレクトリにコピーします。

scp /path/to/your/local/file remoteUser@some_address:/home/remoteUser/Documents

次に、sshを使用してリモートユーザーのアカウントにログインし、Sudoを使用して制限されたディレクトリにファイルを移動します。

ssh remoteUser@some_address
Sudo mv /home/remoteUser/Documents/file /var/www
17
legend12

ファイル名にも:が含まれていないことに注意してください。 mv blah-07-08-17-02:69.txt no_colons.txtを実行し、その後scp no-colons.txt server:を実行する必要があることがわかりました。サーバーに戻ってmvを忘れないでください。念のため、これが問題でした。

0
pjammer