回答編集履歴

1

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

2020/03/12 15:40

投稿

doda
doda

スコア947

test CHANGED
@@ -6,7 +6,7 @@
6
6
 
7
7
 
8
8
 
9
- ```
9
+ ```cmd
10
10
 
11
11
  set DISPLAY=localhost:0.0
12
12
 
@@ -27,3 +27,49 @@
27
27
  この設定を使うのはセキュリティ的には望ましくありません。
28
28
 
29
29
  この設定を入れないとどうしても動かない時のみ設定を行う事をお勧めします。
30
+
31
+
32
+
33
+ ----
34
+
35
+ ## DISPLAYを設定するとログイン出来ない問題
36
+
37
+ バグなのか仕様なのかよく分からないのですが、```DISPLAY```が設定されていて```\dev\tty```というファイルが無いと、パスワード/パスフレーズの入力時```ssh-askpass```を起動しようとして失敗し、結果として認証が行えずログイン出来なくなるようです。
38
+
39
+
40
+
41
+ 対処としては公開鍵認証の設定を行い、ssh-agent に鍵を登録してパスフレーズの入力無しでログイン出来るようにするというのが有りますが、手順の説明が面倒なので今回はダミーの```\dev\tty```を作る方法を紹介します。```ssh-agent```を使う方法について知りたい場合はGoogle等で検索するか、新しい質問として投稿してください。
42
+
43
+
44
+
45
+ ダミーの```\dev\tty```は中身は何でもいいようなので、以下の手順で適当なファイルを作成してください。
46
+
47
+
48
+
49
+ ```cmd
50
+
51
+ mkdir \dev
52
+
53
+ echo a > \dev\tty
54
+
55
+ ```
56
+
57
+ 上記を行った後ならば```DISPLAY```が設定してあっても```ssh -Y```でパスワード/パスフレーズの入力が行えるはずです。
58
+
59
+ また```D:```や```E:```など、```C:```以外のドライブにいる時にも```ssh```を使いたい場合は、各ドライブで```\dev\tty```を作成する必要があるようです。
60
+
61
+
62
+
63
+ ## PowerShellでの挙動が違う問題
64
+
65
+ コマンドプロンプトとPowerShellでは環境変数の設定方法が違います。その為、PowerShell では```DISPLAY```が設定されていない状態となり動作が変わってきます。
66
+
67
+ PowerShellで環境変数```DISPLAY```を設定するには以下のようにしてください。
68
+
69
+
70
+
71
+ ```PowerShell
72
+
73
+ $env:DISPLAY="localhost:0.0"
74
+
75
+ ```