vscodeリモートサーバdockerコンテナにジャンプボードで接続


目的:深さの学習は本機で走ることができないでしょう、サーバーをなくして、それではどのようにdebugしますか??かつての私はprintに頼っていた...
vscodeをダウンロードし、remote-sshプラグインをインストール
詳しくは言わないけど...
docker内構成ssh
  • ターゲットサーバにdockerコンテナを開き、-pでコンテナのポート22をサーバの5222:
  • に転送する
    docker run --name      -it -p 5222:22 --shm-size 64G  --rm --gpus all  -v           bash
    
  • 【リモートサーバコンテナ】rootアカウントパスワードの設定:
  • passwd root
    

    ヒントに従ってパスワードを設定すればいいです.コンテナを起動するときに-uパラメータを使用してroot以外のユーザーを指定した場合は、そのアカウントのパスワードを設定します.
  • 【リモートサーバコンテナ】多くのミラーはsshをデフォルトでインストールしないため、コンテナ内にsshサービスをインストールする必要があります:
  • apt update && apt install -y --no-install-recommends openssh-server
    
  • 【リモートサーバコンテナ】一般的にコンテナに入る際に使用されるのはrootアカウントですが、sshのデフォルトではrootアカウントのパスワードによるリモートログインは禁止されていますので、sshプロファイルを変更して許可する必要があります:
  • sed -i 's/PermitRootLogin prohibit-password/PermitRootLogin yes/g' /etc/ssh/sshd_config
    

    ただし、コンテナを起動するときに-uパラメータを使用してroot以外のユーザーを指定すると、このステップはスキップできます.
  • 【リモートサーバコンテナ】sshサービス開始:
  •  service ssh start
    

    これでdocker内の準備が完了しました
    ~/.ssh/にconfigファイルを作成する
    Host target
      HostName      ip
      User root
      IdentityFile ~/.ssh/id_rsa1 #           
      Port 5222  #       ,  docker 22   5222
      #LocalForward 6006 127.0.0.1:6666        ,     
      ProxyCommand C:\Windows\System32\OpenSSH\ssh.exe -W %h:%p -q jump
    Host jump
      HostName    ip
      User    
      IdentityFile ~/.ssh/id_rsa  #           
      Port 22  #jump  
    

    注意するのはProxyCommandのsshは全経路を书くので、同时にあなた(本机)はターゲットサーバーの鍵のファイルがあって、しかしターゲットサーバーの中でただ板跳び机の公開鍵だけをプラスして、そこで私は机知的に板跳びサーバーから秘密鍵をローカルにダウンロードしましたハハ...
    vscode接続
    vscodeで左のremote explorerをクリックし、configを開き、2つのサーバが現れ、ターゲットサーバをクリックして接続し、完了しました...
    参考になる
    https://blog.csdn.net/u010099080/article/details/104801858?depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromBaidu-12