Contents
Kaggle用の自作PCを作ったけど
昨年末に約38万円(半分がGPU)かけてkaggle兼仮想通貨マイニング用の自作マシンを作ったけれど、
いまいち使い勝手が悪くもやもやしていました。
よく考えるとデスクトップPCなので、基本的に置かれている部屋にいないといけないし、不便。
ということで、GCPなどのようにノートパソコン一つでどこからでもアクセスして
計算を回すことができたらなんていいのだろうと思ってやりました!
自作PCを完成直後にもトライしようとしたが、PCの初期設定やらGPUのドライバーインストール等で
力尽きたので、結局半年以上なにもしないまま今に来てしまったのです。
Server側(自作PC)でopen ssh serverのインストール
ClientのWindowsノートブックからSSHでServerに接続するためには、ServerにSSH Serverをインストールする必要があります。
sudo apt install open-ssh server
Server側のサービス起動
Server側にSSHをインストールしたので、Client側のノートブックからSSHで接続できるように、
サービスを起動する必要があります。
このステップはネット上で公開されている記事で、あまり記述されることがなく結果的にClient側でSSH接続を試みても以下のようなメッセージになります。
ssh: connect to host {ServerのIPアドレス} port 22: Connection refused
原因はSSHサービスを起動していないだけなのに、Firewallの設定の問題やら、ポートが閉じていないかとか全く的はずれなトラブルシューティングをされる羽目になります。
その為、まずはServer側のSSHサービスを起動します。
sudo systemctl start sshd.service
パスワードが求められますので、Sever側のアカウントのパスワードを入力します。
また、Client側からSSH接続する際に、ServerのHostnameもしくは、IP addressが必要になるため確認しておきます。Hostnameを確認する場合は以下のコマンドで、
hostname
IP addressを確認する場合は以下のとおりです。
hostname -I
Client側からSSH接続する
Client側のWindowsのノートブックからPowerShellを立ち上げ、Server側のUsernameとHostnameまたは、IP addressを使って接続します。ここではServer側のUsernameが「server_user_name」、IP addressを適当に「112.107.2X.2X」とした場合に以下のコマンドです。
ssh server_user_name@112.107.2X.2X
初めて接続する場合は以下のメッセージが出るので、「yes」とコマンドします。
Are you sure you want to continue connecting (yes/no/[fingerprint])?
それから、Server側のユーザーパスワードが求められますので、入力するとコマンドライン上でServer側の自作PCをを動かすことが可能になります。
例えば以下のように、Windows のPower ShellからまるでUbuntuのTerminalのように、OSバージョンの確認や自作PCに取り付けられているGPUの認識ができます。
余裕があれば
ここで紹介した方法は、パスワード認証によるSSH接続なため、都度パスワード入力が求められます。
そのため、公開鍵認証方式の方法もあるので、余裕があったらまた設定したいと思います。
また、コマンドラインでのSSHだけでなく、リモートデスクトップ接続もできるようになるともっと便利になると思いますので、暇なときにまたチャレンジしたいと思います。