Создайте вторичный ssh ключ без пароля для установки туннеля ssh

public string appId = "Your app-id";
        public string consumerKey = "Your-consumer key";
        public string consumerSecret = "Your Consumer Secret key";

        // GET: api/Random
        [HttpGet("{CityName}")]
        public async Task<IActionResult> GetAsync([FromUri] string CityName)
        {




        string urlss = "https://weather-ydn-yql.media.yahoo.com/forecastrss?location=";
            string url = urlss + CityName+ "&format=json&u=c";
            JObject jresult;
            using (var client = new HttpClient())
            {
                try
                {

                    var webClient = new WebClient();
                    webClient.Headers.Add(AssembleOAuthHeader());
                    var d = webClient.DownloadString(url);
                    jresult = JObject.Parse(d);
                    var json_jsonstring = Newtonsoft.Json.JsonConvert.SerializeObject(jresult);
                    return Ok(json_jsonstring);

                }
                catch (HttpRequestException httpRequestException)
                {
                    return BadRequest($"Error getting weather from Yahoo Weather: {httpRequestException.Message}");
                }


            }


        }

        public string AssembleOAuthHeader()
        {
            return "Authorization: OAuth " +
                   "realm=\"yahooapis.com\"," +
                   "oauth_consumer_key=\"" + consumerKey + "\"," +
                   "oauth_nonce=\"" + Guid.NewGuid() + "\"," +
                   "oauth_signature_method=\"PLAINTEXT\"," +
                   "oauth_timestamp=\"" + ((DateTime.UtcNow.Ticks - new DateTime(1970, 1, 1).Ticks) / (1000 * 10000)) +
                   "\"," +
                   "oauth_version=\"1.0\"," +
                   "oauth_signature=\"" + consumerSecret + "%26\"," +
                   "oauth_callback=\"oob\"";

        }
5
задан ascobol 21 February 2011 в 15:50
поделиться

2 ответа

Хорошо, я нашел ответ.

Во-первых, ssh-keygen -f theNewPrivateKey иначе это перезапишет старый закрытый ключ. Во-вторых, ssh -i theNewPrivateKey me@mycomputer -i опция изменяет закрытый ключ, используемый для аутентификации.

Теперь я могу попробовать свой сценарий.


Править: то, как делает мой новый ключ, ограничило полномочия:

При копировании открытого ключа в файл $HOME/.ssh/authorized_keys2 целевого компьютера я добавил это:

command="sleep 99999999999" ssh-dss AAAAB3NzaC1kc3MA...
(+ the rest of the key)

Затем единственная позволенная команда должна ожидать навсегда. Так как цель создать этот ключ состояла в том, чтобы создать реверс ssh туннель, это должно быть прекрасным. Я затем создаю туннель:

ssh -T -R 7878:localhost:22 -i .ssh/mynewkey  me@myhomecomputer

Наконец я могу зарегистрироваться от своего домашнего компьютера:

ssh myworklogin@localhost -p7878

Я надеюсь, что это не имеет проблем безопасности. Если это - плохая вещь, сообщите мне!

8
ответ дан 14 December 2019 в 01:19
поделиться

Попробуйте

ssh-keygen

команда.

1
ответ дан 14 December 2019 в 01:19
поделиться
Другие вопросы по тегам:

Похожие вопросы: