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\"";
}
Хорошо, я нашел ответ.
Во-первых, 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
Я надеюсь, что это не имеет проблем безопасности. Если это - плохая вещь, сообщите мне!