質問するログイン新規登録

回答編集履歴

1

追加の質問に対する回答を追記

2020/03/12 15:40

投稿

doda
doda

スコア949

answer CHANGED
@@ -2,7 +2,7 @@
2
2
  Tera TermでX Forwardingをonにするだけで使えているのならば、```localhost:0.0``` に設定すれば大丈夫です。
3
3
  また、```-X```によるX11転送はローカル側で```xauth```コマンドが使える必要があります。使えない場合は、セキュリティ的には落ちますが```-Y```によるtrusted X11 Forwardingを使ってください。
4
4
 
5
- ```
5
+ ```cmd
6
6
  set DISPLAY=localhost:0.0
7
7
  ssh -Y user@remote
8
8
  ```
@@ -12,4 +12,27 @@
12
12
  > X11UseLocalhost no
13
13
 
14
14
  この設定を使うのはセキュリティ的には望ましくありません。
15
- この設定を入れないとどうしても動かない時のみ設定を行う事をお勧めします。
15
+ この設定を入れないとどうしても動かない時のみ設定を行う事をお勧めします。
16
+
17
+ ----
18
+ ## DISPLAYを設定するとログイン出来ない問題
19
+ バグなのか仕様なのかよく分からないのですが、```DISPLAY```が設定されていて```\dev\tty```というファイルが無いと、パスワード/パスフレーズの入力時```ssh-askpass```を起動しようとして失敗し、結果として認証が行えずログイン出来なくなるようです。
20
+
21
+ 対処としては公開鍵認証の設定を行い、ssh-agent に鍵を登録してパスフレーズの入力無しでログイン出来るようにするというのが有りますが、手順の説明が面倒なので今回はダミーの```\dev\tty```を作る方法を紹介します。```ssh-agent```を使う方法について知りたい場合はGoogle等で検索するか、新しい質問として投稿してください。
22
+
23
+ ダミーの```\dev\tty```は中身は何でもいいようなので、以下の手順で適当なファイルを作成してください。
24
+
25
+ ```cmd
26
+ mkdir \dev
27
+ echo a > \dev\tty
28
+ ```
29
+ 上記を行った後ならば```DISPLAY```が設定してあっても```ssh -Y```でパスワード/パスフレーズの入力が行えるはずです。
30
+ また```D:```や```E:```など、```C:```以外のドライブにいる時にも```ssh```を使いたい場合は、各ドライブで```\dev\tty```を作成する必要があるようです。
31
+
32
+ ## PowerShellでの挙動が違う問題
33
+ コマンドプロンプトとPowerShellでは環境変数の設定方法が違います。その為、PowerShell では```DISPLAY```が設定されていない状態となり動作が変わってきます。
34
+ PowerShellで環境変数```DISPLAY```を設定するには以下のようにしてください。
35
+
36
+ ```PowerShell
37
+ $env:DISPLAY="localhost:0.0"
38
+ ```