Closed1

M1 Mac mini - mac book 外部からのssh 設定

massomasso

前提

  • sshサーバー:M1 Mac mini(以下、server)
  • sshクライアント:mac book (以下、client)

やったことメモ

  • ローカルネットワーク内でssh接続できるようにする
    • serverの設定
      • システム環境設定 > ネットワーク > リモートログイン✔
      • +内部IPの確認
    • clientの設定
      • ssh username@内部IP でssh接続+パスワード入力
  • 公開鍵認証方式でログインできるようにする
    • clientの設定
      • ssh-keygen -f mac_mini で鍵ペア作成 in ~/.ssh
      • scp ./ssh/mac_mini.pub username@内部IP:/Users/username/.ssh/ でserverに公開鍵コピー
    • serverの設定
      • cat ~/.ssh/mac_mini.pub > authorized_keys で公開鍵名をsshdの規定値にする(今後追加する場合は、、追記 >> authorized_keys
      • clientの設定再び
        • ~/.ssh/config を編集する。内部からアクセスする用のmac_mini_in と 外部からアクセスする用の mac_mini_ex という2つのHostを新しく記述
          • HostName:アドレス。_inは内部IP、_exはグローバルIPを記載
          • Username:ログインユーザー名。同一
          • IdentityFile:秘密鍵のパス。同一
          • Port:sshに使うポート番号。同一
      • ホスト名だけでssh接続できることの確認
        • ssh mac_mini_in
  • 外部からセキュアにssh接続できるようにする
    • server設定
      • sshのポート番号を変更(例えば10022)
        • vim /etc/ssh/sshd_config
        • vim /etc/services
      • グローバルIPの確認(こちら
      • 内部IPの固定( 🤗 要問題解決:インターネットにつながらなくなる
        • DHCPで自動で割り振るIPを固定化する(参考1
    • ルーターの設定
      • グローバルIPアドレス固定(一旦なし)
      • ポート番号開放+接続(外部10022 -> 内部10022)
    • == ここまで完了 ==

上手く行かなかったメモ

  • serverのssh用ポート番号を変えて、公開鍵認証できるように各種ssh周りの設定をいじった後、clientからssh接続すると、Permission denied (publickey)と出て、接続できない
    • まずは、serverのログを見ようと思って、ログの見方を調べるために このサイト を見て、気づいたのだが、sshオプションにキーペア名を入れてなかった
    • 改善後コマンド。これで無事接続できた
      • ssh -p 設定したポート番号 username@内部IP -i ~/.ssh/mac_mini

二次被害が出たメモ

  • gitコマンド実行時、ssh接続できなくなったっぽい(clone, push, pull)タイムアウトになる
    • 非デフォルトなポート(10022)でも、sshコマンドでは、githubへの認証は上手くいった。
    • いろいろ調べたが、上手く行かなかったので、以下のように「sshのポートを元に戻す」手続きを行った
      • /etc/ssh/services にて ssh 22 udp/tcp に戻す
      • /etc/ssh/sshd_config にて Port 22 に戻す
    • とりあえず、これでgitコマンドは通常通り完了できるようになった。(が、外部からのssh接続は22を使わないといけなくなった)

その他参考

このスクラップは2021/04/27にクローズされました