こんにちは。YOSHITAKA(@YOSHITA19704216)です。
windowsのssh接続情報が多すぎて、macの情報がなかったので、今回は掲載します。
- 「Permission denied」エラーを解決して、sshログインをします。
- sshログインができれば、ディレクトリに接続して、Laravelのファイルを入れたらOKです。
Contents
macのターミナルでエックスサーバーにLaravelを導入するためのsshログイン方法
sshログインまでの流れ
エックスサーバー編
- サーバーパネルにログイン
- SSH設定を開く。
- SSH設定を「ON」にする。
- 公開鍵認証用鍵ペアの作成タブを開く。
- SSHに使うパスワードを入力する。
- サーバーID.keyファイルが自動的にダウンロードされる。
ローカルフォルダの設定編
- サーバーID.keyファイルを任意のフォルダ(sshフォルダでOK)
- ターミナルを開いてsshフォルダの1個上のフォルダに移動する
- sshフォルダのpermissionを700にする
- ターミナルでフォルダの中に移動する
- keyファイルに権限を与える。permissionを600にする
ハマった内容をpoint解説
- 自分の場合は「shiga456.key」
- 拡張子が「.key」が表示されたファイルが、公開鍵認証用鍵になります。
※keyのファイル名称を変更して、接続を試みたのですが、エラーで接続できませんでした。
正しく変更すれば、問題ないのかもしれませんが、自分の場合はうまくできませんでした。
おそらく、コマンドでのディレクトリ指定が違ったのがしれませんが、複数のsshフォルダに複数のファイルがあり、接続するのに手間がかかったので、オーソドックスな方法に変更しました。
ちなみに他のサイトを確認して、自分で公開鍵認証用鍵を生成して、登録する方法もあると知ったので実行したところ次の結論に至りました。
自分でssh keygeneなどを行って、パスコードを生成して、
エックスサーバーの「公開鍵登録」にコピペした所、文字数の制限にかかりました。
そのため、エックスサーバーの「公開鍵認証用鍵ペアの作成」で行うことが得策っぽいです。
あとはコマンドの見本があったほうがわかりやすかったので見本を掲載しておきます。
パーミッションは必ず変更する。ファイルは次のように変更します。
yoshitaka@yoshi-mb:~/.ssh $ chmod 600 shiga456.key
接続コマンド(ssh接続コマンド)
yoshitaka@yoshi-mb:~/.ssh $ ssh -l shiga456 -i ~/.ssh/shiga456.key sv3854.xserver.jp -p 10022
※もちろん、サーバー名は架空の情報なので、自分のエックスサーバーの情報を入れましょう。
別の記述方法でもログインできるようですが、自分の場合は上記の方法でログインできました。
エラーあるある
permissionのエラーになったら、原因は次のとおりです。
- 鍵のあるフォルダのpermissionが700になっていない。
- 鍵ファイルのpermissionが600になっていない。
- エックスサーバー指定のポート番号が「10022」ではなく、違うポート番号になっている。
- コマンドに「-l ユーザー名」を打ち込んでいない。
上記のようなことを確認してみてください。
抑えておくPoint 3点
yoshitaka@yoshi:~/.ssh $ ssh -l shiga456 -i ~/.ssh/shiga456.key sv3854.xserver.jp -p 10022
⇒「-l ユーザー名」を入力するのを忘れないようにしましょう。
※コマンドにユーザー名を入れないと、Root権限でログインしようとするのでログインできません。
上記の内容で、パーミッションエラーになる可能性があるので、意識してみてください。
鍵ファイルのファイル名をid_rsaにすると説明している記事が散見されて、迷うことが多いと思いますが、
「同名のファイルがたくさんあって困る」という場合でなければ、
ファイル名を変更する必要はありません。
※ファイル名はログインできるできないとは関係ありません。
自分の場合は、ファイルがたくさんあって、色々弄った結果、逆に時間がかかるという現象に陥りました。
エックスサーバーのサーバーパネルのSSH設定で
「公開鍵認証用鍵ペアの作成」で鍵を作って、ダウンロードで設定は終了です。
※ タブにある「公開鍵登録」に貼り付けなどの情報を入力する必要はありません。
理由としては
「公開鍵認証用鍵ペアの作成」でパスワードを入力して鍵を作ったら、
サーバーに公開鍵も登録されるので、「公開鍵登録」する必要はないようです。
上記の内容を確認して、エラーを起こすことなく、ログインしていきましょう。
まとめ
今回はmacのターミナルでエックスサーバーにLaravelを導入するためのsshログイン方法。「Permission denied」エラーを解決する方法。についてお伝えしました。
未経験のエンジニアが少しでもこの記事を参考にして、面接に挑んでいただけると幸いです。
※プログラミングは習得中ですので、参考程度に記事を読んでください。