LoginSignup
3
5

More than 5 years have passed since last update.

Laravel5でSSH(SCP/SFTP)を利用する ついでにWindows環境でも

Last updated at Posted at 2016-02-03

Laravel5から、SSHで何かをやりたいならEnvoyを使え!という感じらしいです。

が、昔あったSSHを利用したい場合は、Laravel CollectiveでメンテされているRemote機能を使えばいいようです。

基本的には、本家サイトの通りにやればいいのですが、いくつか不明な点もあったので使い方をメモしておきます。

やりたいこと

  • ローカルで生成したファイルをリモートサーバの指定PATHにSCPでコピーしたい
  • SSHは鍵ログイン
  • SSHが標準で使えないWindowsでも使いたい

使い方(Mac/Linux)

まず、本家ページのガイダンスに従い、composerでライブラリ等を読み込み、config/app.php等を編集した後、artisanで、config/remote.phpを生成します。

手順はこちらの通り。

その他、注意点などを以下に書きます。

remote.phpの設定

鍵のみでの認証の場合、どうしたらいいかわからなかったのですが、下記の記述でOKのようです。

<?php

return [

    'default' => 'production',

    'connections' => [
        'production' => [
            'host'      => 'remotehost_name',
            'username'  => 'hoge',
            'password'  => '',
            'key'       => '/Users/hoge/.ssh/id_rsa',
            'keytext'   => '',
            'keyphrase' => 'hoge',
            'agent'     => '',
            'timeout'   => 10,
        ],
    ],

    'groups' => [
        'web' => ['production'],
    ],

];

scp(ローカルからリモート)

下記のように記述することでscpでローカルからリモートへファイルコピーができました。
いつもの手抜きでroute.phpに記述。

Route::get('up',function(){

    //コピー(ローカルからリモート)
    SSH::into('production')->put('/Users/hoge/test.txt','/home/hoge/test.txt');
    //return
    return 'up';

});

Windowsで利用する

そもそもWindowsにはSSHが無いのでどうするのか調べてみました。
結論から言えば、去年リリースされたWindows対応のOpenSSHを利用すれば問題なく動くようです。

OpenSSHを使う

Windows版のOpenSSHはここからダウンロードできます。

インストール

インストーラーは無いので、Zipファイルを回答し、そこにPATHを通します。私の場合は、x64版をダウンロードし、それをCドライブ直下にコピーしました。

ユーザーのホームディレクトリにUNIX系と同様に.sshフォルダができますので、鍵を利用する場合はそこに鍵をコピーします。

後は、Mac(Linux)と全く同じ手順でSSHを利用できます。
Laravelで試す前に、事前に手動でsshでログインできるかを試して置いた方がいいでしょう。

ssh -i /path/to/key username@remote_hostname

sshが動くなら、おそらくEnvoyも動くのでしょう(試していませんが)。

おまけ

そもそもSFTPができるかをコマンドで確認する方法。いつもはscpしてるので、SFTPの方法をメモ。
鍵をつかってログインするには、下記のようにする。

passphaseがある場合は入力を求められますので入力します。

sftp -o IdentityFile=C:¥Users¥hoge¥.ssh¥id_rsa username@remote_hostname

でサーバにログインしておいて、

>put localfile

等で操作可能。
ログイン後は基本FTPと同じですね。

3
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
5