コマンドプロンプト経由でローカルファイルを仮想マシンの方に転送したくなった。
(いつもはFTPソフトでやったり共有したりしてたけど飽きた)
どうやらscpコマンドを使うと送信できるらしいのでやってみることに。
環境
C:\>ver Microsoft Windows [Version 10.0.18363.1082] C:\>vagrant --version Vagrant 2.2.9 $ cat /etc/redhat-release CentOS Linux release 8.2.2004 (Core)
参考
Vagrantの仮想マシンにscpでファイル転送する - Qiita
1.OpenSSHの設定をするOpenSSHの設定を行う. vagrant ssh-configコマンドで出来る.$vagrant ssh-config このコマンドで得ることのできるファイルを…
scpコマンドでサーバー上のファイルorディレクトリをローカルに落としてくる - Qiita
基本scpは、sshを使ってネットワーク・ホスト間でファイルを安全にコピーするためのコマンド。scp -i ~/.ssh/secret.pem -r ec2-user@ec2-54-00-00-…
やったこと
ssh.configファイル作成とポート情報確認
scpでファイル転送するにはssh.configファイルとポート情報が必要らしいので確認する。
C:\> vagrant ssh-config Host default HostName 127.0.0.1 User vagrant Port 2222 UserKnownHostsFile /dev/null StrictHostKeyChecking no PasswordAuthentication no IdentityFile C:/【vagrant upしたディレクトリ】/.vagrant/machines/default/virtualbox/private_key IdentitiesOnly yes LogLevel FATAL
ssh.configを作成
C:\>vagrant ssh-config > ssh.config
ホストOS(ローカル)→ゲストOS(仮想マシン)にファイル、フォルダを転送
ファイル、フォルダをそれぞれ転送してみる。
-P のあとのポート番号は、「vagrant ssh.config」実行時のポート番号を指定する(今回は2222)
ファイルを転送してみる(vagrantユーザーのパスワードを入力すれば転送される)
C:\>scp -P 2222 -F ssh.config ./hoge.txt vagrant@localhost:/home/vagrant/ vagrant@localhost's password: hoge.txt 100% 0 0.0KB/s 00:00
フォルダを転送してみる(HogeDirの中にhoge.txtがあるフォルダ)
C:\>scp -P 2222 -F ssh.config -r ./HogeDir vagrant@localhost:/home/vagrant/ vagrant@localhost's password: hoge.txt 100% 0 0.0KB/s 00:00
ファイル、フォルダが転送されたか確認
sshでログインして、転送できたか確認してみる。
C:\>vagrant ssh $ pwd /home/vagrant $ ls -l 合計 3896 drwxrwxr-x. 2 vagrant vagrant 22 9月 25 15:18 HogeDir -rw-rw-r--. 1 vagrant vagrant 0 9月 25 15:25 hoge.txt $ cd HogeDir $ pwd /home/vagrant/HogeDir $ ls -l 合計 0 -rw-rw-r--. 1 vagrant vagrant 0 9月 25 15:26 hoge.txt
無事に転送されているようだ。
おわり。