質問編集履歴

6

軽微な修正

2018/02/05 05:39

投稿

itouri
itouri

スコア18

test CHANGED
File without changes
test CHANGED
@@ -4,7 +4,7 @@
4
4
 
5
5
 
6
6
 
7
- ここで,質問なんですがクライアントからのconfigのAuthMethodに設定が無かったときのcallbackをサーバに設定できないでしょうか.pubkeyやpasswordの設定があった場合は通常どうりに各callbackを呼んでほしいです.
7
+ ここで,質問なんですがクライアントからのconfigのAuthMethodに設定が無かったときのcallbackをサーバに設定できないでしょうか.pubkeyやpasswordの設定があった場合は通常どうりに各callbackを呼んでほしいです.サーバはユーザの情報によって振る舞いを変えます.
8
8
 
9
9
  ```
10
10
 
@@ -34,9 +34,9 @@
34
34
 
35
35
  config := &ssh.ServerConfig{
36
36
 
37
+ // clientからのAuthが設定されていない場合に呼んでほしい
38
+
37
39
  NoAuthCallback(conn ssh.ConnMetadata) {
38
-
39
- // clientからのAuthが設定されていない場合に呼んでほしい
40
40
 
41
41
  authMethod := getAuthMethodsFromDB(conn.User())
42
42
 

5

ソースコードの修正

2018/02/05 05:38

投稿

itouri
itouri

スコア18

test CHANGED
File without changes
test CHANGED
@@ -40,13 +40,15 @@
40
40
 
41
41
  authMethod := getAuthMethodsFromDB(conn.User())
42
42
 
43
- // authMethodsに認証なしない
43
+ // authMethod認証なしないなら通さない
44
44
 
45
45
  if authMethod != "none" {
46
46
 
47
47
  return NG
48
48
 
49
49
  }
50
+
51
+ return OK
50
52
 
51
53
  },
52
54
 
@@ -59,6 +61,8 @@
59
61
  switch authMethod {
60
62
 
61
63
  case "none":
64
+
65
+ // DB側がnoneなら通す
62
66
 
63
67
  return OK
64
68
 

4

ソースコードを詳しくした

2018/02/05 05:35

投稿

itouri
itouri

スコア18

test CHANGED
File without changes
test CHANGED
@@ -34,15 +34,19 @@
34
34
 
35
35
  config := &ssh.ServerConfig{
36
36
 
37
- NoAuthCallback() {
37
+ NoAuthCallback(conn ssh.ConnMetadata) {
38
38
 
39
39
  // clientからのAuthが設定されていない場合に呼んでほしい
40
40
 
41
- },
41
+ authMethod := getAuthMethodsFromDB(conn.User())
42
42
 
43
- PasswordCallback: func(conn ssh.ConnMetadata, pass []byte) (*ssh.Permissions, error) {
43
+ // authMethodsに認証なしがない
44
44
 
45
- // password認証時の処理
45
+ if authMethod != "none" {
46
+
47
+ return NG
48
+
49
+ }
46
50
 
47
51
  },
48
52
 
@@ -50,10 +54,26 @@
50
54
 
51
55
  // publickey認証時の処理
52
56
 
57
+ authMethod := getAuthMethodsFromDB(conn.User())
58
+
59
+ switch authMethod {
60
+
61
+ case "none":
62
+
63
+ return OK
64
+
65
+ case "pubkey":
66
+
67
+ return 公開鍵認証の結果
68
+
69
+ }
70
+
71
+ }
72
+
53
73
  },
54
74
 
55
75
  }
56
76
 
57
77
  ```
58
78
 
59
- どなたかご教授お願いします
79
+ どなたかご教授お願いします.

3

タイトルの変更

2018/02/05 05:32

投稿

itouri
itouri

スコア18

test CHANGED
@@ -1 +1 @@
1
- 認証メソッド設定ないsshクライアントへのサーバのコールバック設定方法
1
+ 認証メソッド設定ないsshクライアントへのサーバのコールバック設定方法
test CHANGED
File without changes

2

タイトルの編集

2018/02/04 15:26

投稿

itouri
itouri

スコア18

test CHANGED
@@ -1 +1 @@
1
- sshクライアントの認証メソッド設定ないのサーバのコールバック方法
1
+ 認証メソッド設定ないsshクライアントへのサーバのコールバック設定方法
test CHANGED
File without changes

1

タイトルの修正

2018/02/04 15:13

投稿

itouri
itouri

スコア18

test CHANGED
@@ -1 +1 @@
1
- sshサーバに認証メソッドないときのコールバック設定方法
1
+ sshクライアントの認証メソッド設定ないのサーバのコールバック方法
test CHANGED
File without changes